upgrade-nix: add --dry-run
This commit is contained in:
parent
c651b7bdc9
commit
414397759a
1 changed files with 13 additions and 8 deletions
|
@ -1,4 +1,5 @@
|
||||||
#include "command.hh"
|
#include "command.hh"
|
||||||
|
#include "common-args.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
#include "download.hh"
|
#include "download.hh"
|
||||||
#include "eval.hh"
|
#include "eval.hh"
|
||||||
|
@ -6,7 +7,7 @@
|
||||||
|
|
||||||
using namespace nix;
|
using namespace nix;
|
||||||
|
|
||||||
struct CmdUpgradeNix : StoreCommand
|
struct CmdUpgradeNix : MixDryRun, StoreCommand
|
||||||
{
|
{
|
||||||
Path profileDir;
|
Path profileDir;
|
||||||
|
|
||||||
|
@ -61,21 +62,25 @@ struct CmdUpgradeNix : StoreCommand
|
||||||
|
|
||||||
{
|
{
|
||||||
Activity act(*logger, lvlInfo, actUnknown, fmt("downloading '%s'...", storePath));
|
Activity act(*logger, lvlInfo, actUnknown, fmt("downloading '%s'...", storePath));
|
||||||
store->ensurePath(storePath);
|
if (!dryRun)
|
||||||
|
store->ensurePath(storePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
Activity act(*logger, lvlInfo, actUnknown, fmt("verifying that '%s' works...", storePath));
|
Activity act(*logger, lvlInfo, actUnknown, fmt("verifying that '%s' works...", storePath));
|
||||||
auto program = storePath + "/bin/nix-env";
|
if (!dryRun) {
|
||||||
auto s = runProgram(program, false, {"--version"});
|
auto program = storePath + "/bin/nix-env";
|
||||||
if (s.find("Nix") == std::string::npos)
|
auto s = runProgram(program, false, {"--version"});
|
||||||
throw Error("could not verify that '%s' works", program);
|
if (s.find("Nix") == std::string::npos)
|
||||||
|
throw Error("could not verify that '%s' works", program);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
Activity act(*logger, lvlInfo, actUnknown, fmt("installing '%s' into profile '%s'...", storePath, profileDir));
|
Activity act(*logger, lvlInfo, actUnknown, fmt("installing '%s' into profile '%s'...", storePath, profileDir));
|
||||||
runProgram(settings.nixBinDir + "/nix-env", false,
|
if (!dryRun)
|
||||||
{"--profile", profileDir, "-i", storePath, "--no-sandbox"});
|
runProgram(settings.nixBinDir + "/nix-env", false,
|
||||||
|
{"--profile", profileDir, "-i", storePath, "--no-sandbox"});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue