diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2018-01-31T15·14+0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2018-01-31T15·24+0100 |
commit | 6fa690291a0ca81ded59ab3db1745ce2dfef84fd (patch) | |
tree | 296f49d4cc471d2dfd9327c6b5933b10e51545ea /src/nix/main.cc | |
parent | 8af911be5ccb11f05615451fc7e90377ede7fba7 (diff) |
Add 'nix upgrade-nix' command
This command upgrades Nix to the latest stable version by installing a store path obtained from https://github.com/NixOS/nixpkgs/raw/master/nixos/modules/installer/tools/nix-fallback-paths.nix which is the same store path that the installer at https://nixos.org/nix/install.sh uses. The upgrade fails if Nix is not installed in a profile (e.g. on NixOS, or when installed outside of the Nix store).
Diffstat (limited to 'src/nix/main.cc')
-rw-r--r-- | src/nix/main.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/nix/main.cc b/src/nix/main.cc index 06bb8a1c3043..8f6bbe8f51ae 100644 --- a/src/nix/main.cc +++ b/src/nix/main.cc @@ -16,6 +16,8 @@ void chrootHelper(int argc, char * * argv); namespace nix { +std::string programPath; + struct NixArgs : virtual MultiCommand, virtual MixCommonArgs { NixArgs() : MultiCommand(*RegisterCommand::commands), MixCommonArgs("nix") @@ -78,7 +80,8 @@ void mainWrapped(int argc, char * * argv) initNix(); initGC(); - string programName = baseNameOf(argv[0]); + programPath = argv[0]; + string programName = baseNameOf(programPath); { auto legacy = (*RegisterLegacyCommand::commands)[programName]; |