summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
};
}
}