void mpkg::exportBase(string output_dir) { say("Exporting data to %s directory\n",output_dir.c_str()); // First of all, clear previous contents system("rm -rf " + output_dir+"; mkdir -p " + output_dir); PACKAGE_LIST allPackages; SQLRecord sqlSearch; sqlSearch.addField("package_installed", 1); get_packagelist(&sqlSearch, &allPackages); say("Received %d packages\n",allPackages.size()); for (int i=0; i<allPackages.size(); i++) { say("[%d/%d] Exporting package %s\n",i+1,allPackages.size(),allPackages.get_package(i)->get_name()->c_str()); db->exportPackage(output_dir, allPackages.get_package(i)); } }
bool mpkg::repair(string fname) { SQLRecord sqlSearch; sqlSearch.addField("package_name", &fname); sqlSearch.addField("package_installed", 1); PACKAGE_LIST p; get_packagelist(&sqlSearch, &p); if (p.size()==1) { return repair(p.get_package(0)); } else { say(_("Cannot repair or reinstall package %s: it is not installed\n"), fname.c_str()); return false; } }
bool mpkg::checkPackageIntegrity(string pkgName) { SQLRecord sqlSearch; sqlSearch.addField("package_name", &pkgName); sqlSearch.addField("package_installed", ST_INSTALLED); PACKAGE_LIST table; get_packagelist(&sqlSearch, &table); if (table.size()==0) { mError(_("No package \"") + pkgName + _("\" is installed")); return true; } if (table.size()!=1) { mError(_("Received ") + IntToStr(table.size()) + _(" packages, ambiguity!")); return false; } return checkPackageIntegrity(table.get_package(0)); }