#include "command.hh" #include "common-args.hh" #include "shared.hh" #include "store-api.hh" #include "gc-store.hh" using namespace nix; struct CmdStoreDelete : StorePathsCommand { GCOptions options { .action = GCOptions::gcDeleteSpecific }; CmdStoreDelete() { addFlag({ .longName = "ignore-liveness", .description = "Do not check whether the paths are reachable from a root.", .handler = {&options.ignoreLiveness, true} }); } std::string description() override { return "delete paths from the Nix store"; } std::string doc() override { return #include "store-delete.md" ; } void run(ref store, std::vector && storePaths) override { auto & gcStore = requireGcStore(*store); for (auto & path : storePaths) options.pathsToDelete.insert(path); GCResults results; PrintFreed freed(true, results); gcStore.collectGarbage(options, results); } }; static auto rCmdStoreDelete = registerCommand2({"store", "delete"});