Unify "nix verify-paths" and "nix verify-store"

"verify-store" is now simply an "--all" flag to "nix verify". This
flag can be used for any other store path command as well (e.g. "nix
path-info", "nix copy-sigs", ...).
This commit is contained in:
Eelco Dolstra 2016-04-14 21:14:29 +02:00
parent 327569035c
commit 99851c6f06
3 changed files with 31 additions and 60 deletions

View file

@ -73,18 +73,28 @@ StorePathsCommand::StorePathsCommand()
{
expectArgs("paths", &storePaths);
mkFlag('r', "recursive", "apply operation to closure of the specified paths", &recursive);
mkFlag(0, "all", "apply operation to the entire store", &all);
}
void StorePathsCommand::run(ref<Store> store)
{
for (auto & storePath : storePaths)
storePath = followLinksToStorePath(storePath);
if (all) {
if (storePaths.size())
throw UsageError("--all does not expect arguments");
for (auto & p : store->queryAllValidPaths())
storePaths.push_back(p);
}
if (recursive) {
PathSet closure;
else {
for (auto & storePath : storePaths)
store->computeFSClosure(storePath, closure, false, false);
storePaths = store->topoSortPaths(closure);
storePath = followLinksToStorePath(storePath);
if (recursive) {
PathSet closure;
for (auto & storePath : storePaths)
store->computeFSClosure(storePath, closure, false, false);
storePaths = store->topoSortPaths(closure);
}
}
run(store, storePaths);