Add "nix verify-store" command
Like "nix-store --verify --check-contents", but with the same advantages as "nix verify-paths".
This commit is contained in:
parent
784ee35c80
commit
4f34c40398
1 changed files with 53 additions and 13 deletions
|
@ -10,28 +10,18 @@
|
||||||
|
|
||||||
using namespace nix;
|
using namespace nix;
|
||||||
|
|
||||||
struct CmdVerifyPaths : StorePathsCommand
|
struct MixVerify : virtual Args
|
||||||
{
|
{
|
||||||
bool noContents = false;
|
bool noContents = false;
|
||||||
bool noSigs = false;
|
bool noSigs = false;
|
||||||
|
|
||||||
CmdVerifyPaths()
|
MixVerify()
|
||||||
{
|
{
|
||||||
mkFlag(0, "no-contents", "do not verify the contents of each store path", &noContents);
|
mkFlag(0, "no-contents", "do not verify the contents of each store path", &noContents);
|
||||||
mkFlag(0, "no-sigs", "do not verify whether each store path has a valid signature", &noSigs);
|
mkFlag(0, "no-sigs", "do not verify whether each store path has a valid signature", &noSigs);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string name() override
|
void verifyPaths(ref<Store> store, const Paths & storePaths)
|
||||||
{
|
|
||||||
return "verify-paths";
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string description() override
|
|
||||||
{
|
|
||||||
return "verify the integrity of store paths";
|
|
||||||
}
|
|
||||||
|
|
||||||
void run(ref<Store> store, Paths storePaths) override
|
|
||||||
{
|
{
|
||||||
restoreAffinity(); // FIXME
|
restoreAffinity(); // FIXME
|
||||||
|
|
||||||
|
@ -121,4 +111,54 @@ struct CmdVerifyPaths : StorePathsCommand
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct CmdVerifyPaths : StorePathsCommand, MixVerify
|
||||||
|
{
|
||||||
|
CmdVerifyPaths()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string name() override
|
||||||
|
{
|
||||||
|
return "verify-paths";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string description() override
|
||||||
|
{
|
||||||
|
return "verify the integrity of store paths";
|
||||||
|
}
|
||||||
|
|
||||||
|
void run(ref<Store> store, Paths storePaths) override
|
||||||
|
{
|
||||||
|
verifyPaths(store, storePaths);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
static RegisterCommand r1(make_ref<CmdVerifyPaths>());
|
static RegisterCommand r1(make_ref<CmdVerifyPaths>());
|
||||||
|
|
||||||
|
struct CmdVerifyStore : StoreCommand, MixVerify
|
||||||
|
{
|
||||||
|
CmdVerifyStore()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string name() override
|
||||||
|
{
|
||||||
|
return "verify-store";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string description() override
|
||||||
|
{
|
||||||
|
return "verify the integrity of all paths in the Nix store";
|
||||||
|
}
|
||||||
|
|
||||||
|
void run(ref<Store> store) override
|
||||||
|
{
|
||||||
|
// FIXME: use store->verifyStore()?
|
||||||
|
|
||||||
|
PathSet validPaths = store->queryAllValidPaths();
|
||||||
|
|
||||||
|
verifyPaths(store, Paths(validPaths.begin(), validPaths.end()));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static RegisterCommand r2(make_ref<CmdVerifyStore>());
|
||||||
|
|
Loading…
Reference in a new issue