diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-10-27 10:06:45 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-10-27 10:06:45 +0200 |
commit | c108bb6ba4090046d8c2cd21f40a8008be977311 (patch) | |
tree | 239a0b77f083c32ef4a07ff14cfa147bbe91dd6e /bpkg/pkg-purge.cxx | |
parent | 73d5768368cf64c3e3c8505503affaa05b2d0b31 (diff) |
Finish drop command implementation
Diffstat (limited to 'bpkg/pkg-purge.cxx')
-rw-r--r-- | bpkg/pkg-purge.cxx | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/bpkg/pkg-purge.cxx b/bpkg/pkg-purge.cxx index b90136a..9b63c15 100644 --- a/bpkg/pkg-purge.cxx +++ b/bpkg/pkg-purge.cxx @@ -66,6 +66,26 @@ namespace bpkg } } + void + pkg_purge (const dir_path& c, + transaction& t, + const shared_ptr<selected_package>& p) + { + assert (p->state == package_state::fetched || + p->state == package_state::unpacked); + + tracer trace ("pkg_purge"); + + database& db (t.database ()); + tracer_guard tg (db, trace); + + assert (!p->out_root); + pkg_purge_fs (c, t, p, true); + + db.erase (p); + t.commit (); + } + int pkg_purge (const pkg_purge_options& o, cli::scanner& args) { |