forked from lix-project/lix
nix3-upgrade-nix: allow manually specifying the store path for the new nix
Should this specify the profile? The derivation output that gets linked
into that profile? The latter is probably better.
Change-Id: Ib71711ffb466febf4a6892e3fdbda644e053770d
This commit is contained in:
parent
33e433ad68
commit
c529adb996
|
@ -21,6 +21,8 @@ struct CmdUpgradeNix : MixDryRun, EvalCommand
|
|||
Path profileDir;
|
||||
std::string storePathsUrl = "https://github.com/NixOS/nixpkgs/raw/master/nixos/modules/installer/tools/nix-fallback-paths.nix";
|
||||
|
||||
std::optional<Path> overrideStorePath;
|
||||
|
||||
CmdUpgradeNix()
|
||||
{
|
||||
addFlag({
|
||||
|
@ -31,6 +33,13 @@ struct CmdUpgradeNix : MixDryRun, EvalCommand
|
|||
.handler = {&profileDir}
|
||||
});
|
||||
|
||||
addFlag({
|
||||
.longName = "store-path",
|
||||
.description = "A specific store path to upgrade Nix to",
|
||||
.labels = {"store-path"},
|
||||
.handler = {&overrideStorePath},
|
||||
});
|
||||
|
||||
addFlag({
|
||||
.longName = "nix-store-paths-url",
|
||||
.description = "The URL of the file that contains the store paths of the latest Nix release.",
|
||||
|
@ -246,6 +255,14 @@ struct CmdUpgradeNix : MixDryRun, EvalCommand
|
|||
/* Return the store path of the latest stable Nix. */
|
||||
StorePath getLatestNix(ref<Store> store)
|
||||
{
|
||||
if (this->overrideStorePath) {
|
||||
printTalkative(
|
||||
"skipping Nix version query and using '%s' as latest Nix",
|
||||
*this->overrideStorePath
|
||||
);
|
||||
return store->parseStorePath(*this->overrideStorePath);
|
||||
}
|
||||
|
||||
Activity act(*logger, lvlInfo, actUnknown, "querying latest Nix version");
|
||||
|
||||
// FIXME: use nixos.org?
|
||||
|
|
Loading…
Reference in a new issue