From 780290277a51853b2e515b16898ca0fcfa1e9e71 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Mon, 26 Feb 2018 22:00:22 +0300 Subject: Update rep-fetch --- bpkg/rep-remove.hxx | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'bpkg/rep-remove.hxx') diff --git a/bpkg/rep-remove.hxx b/bpkg/rep-remove.hxx index 8bc6144..a7a6418 100644 --- a/bpkg/rep-remove.hxx +++ b/bpkg/rep-remove.hxx @@ -6,6 +6,7 @@ #define BPKG_REP_REMOVE_HXX #include +#include // database, repository #include #include @@ -14,6 +15,37 @@ namespace bpkg { int rep_remove (const rep_remove_options&, cli::scanner& args); + + // Remove a repository if it is not reachable from the root (and thus is not + // required by any user-added repository). + // + void + rep_remove (const dir_path& conf, database&, const shared_ptr&); + + // Bring the configuration to the clean state as if repositories were added + // but never fetched. Leave selected packages intact. Note that it should be + // called out of the database transaction. + // + // Specifically: + // + // - Clean prerequisite and complement repository sets for the top-level + // repositories. + // + // - Remove all repositories except the top-level ones and the root. + // + // - Remove all repository state directories (regardless of whether they + // actually relate to any existing repositories). + // + // - Remove all available packages. + // + void + rep_remove_clean (const dir_path& conf, database&, bool quiet = true); + + // Remove a repository from locations of the available packages it + // contains. Remove packages that come from only this repository. + // + void + rep_remove_package_locations (database&, const string& repository_name); } #endif // BPKG_REP_REMOVE_HXX -- cgit v1.1