summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2016-06-01 15:26:50 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2016-06-01 15:26:50 +0100
commit01953224fc0f85b84b322bb266823c5f04686d32 (patch)
tree6da74cfa35436745e9278f224f55eb6a13b8b9d4
parentImport package tree news (diff)
downloadgentoobrowse-api-01953224fc0f85b84b322bb266823c5f04686d32.tar.bz2
gentoobrowse-api-01953224fc0f85b84b322bb266823c5f04686d32.tar.xz
gentoobrowse-api-01953224fc0f85b84b322bb266823c5f04686d32.zip
Don't delete packages and categories immediately when deleting ebuilds (they might come back), do them in apply
-rw-r--r--gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp20
-rw-r--r--gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h1
2 files changed, 15 insertions, 6 deletions
diff --git a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp
index 2ba14e7..ccb498a 100644
--- a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp
+++ b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp
@@ -132,6 +132,19 @@ namespace Gentoo {
t.dest = "gentoobrowse.ebuild_rdeps";
dbc->patchTable(&t);
}
+ if (!catsDeleteFrom.empty()) {
+ bool any = false;
+ for(const auto & categoryName : catsDeleteFrom) {
+ // Prune packages
+ auto pp = dbc->modify(sql::maintenance::packagePrune.getSql());
+ pp->bindParamS(0, categoryName);
+ any |= pp->execute();
+ }
+ if (any) {
+ // Prune categories
+ dbc->modify(sql::maintenance::categoryPrune.getSql())->execute();
+ }
+ }
}
void
@@ -224,12 +237,7 @@ namespace Gentoo {
m->bindParamS(2, packageName);
m->bindParamS(3, ebuildVersion);
m->execute(false);
- // Prune packages
- auto pp = dbc->modify(sql::maintenance::packagePrune.getSql());
- pp->bindParamS(0, categoryName);
- pp->execute();
- // Prune categories
- dbc->modify(sql::maintenance::categoryPrune.getSql())->execute();
+ catsDeleteFrom.insert(categoryName);
}
}
}
diff --git a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h
index a337e8b..2e92217 100644
--- a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h
+++ b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h
@@ -28,6 +28,7 @@ namespace Gentoo {
DB::ModifyCommandPtr depInsert;
std::set<int64_t> ebuildIds;
+ std::set<std::string> catsDeleteFrom;
};
}
}