diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-06-02T11·33+0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-06-02T14·02+0200 |
commit | 812c0dfbe24c8fe93992f77abbf1e5a975ea42f4 (patch) | |
tree | d69bcc87ce446f270f6b01f7069655223d52a626 /src/nix-env/nix-env.cc | |
parent | f2682e6e18a76ecbfb8a12c17e3a0ca15c084197 (diff) |
Allow setting the state directory as a store parameter
E.g. "local?store=/tmp/store&state=/tmp/var".
Diffstat (limited to 'src/nix-env/nix-env.cc')
-rw-r--r-- | src/nix-env/nix-env.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/nix-env/nix-env.cc b/src/nix-env/nix-env.cc index fbb0f61a19d2..3f0486bb6541 100644 --- a/src/nix-env/nix-env.cc +++ b/src/nix-env/nix-env.cc @@ -692,6 +692,9 @@ static void opSetFlag(Globals & globals, Strings opFlags, Strings opArgs) static void opSet(Globals & globals, Strings opFlags, Strings opArgs) { + auto store2 = globals.state->store.dynamic_pointer_cast<LocalFSStore>(); + if (!store2) throw Error("--set is not supported for this Nix store"); + for (Strings::iterator i = opFlags.begin(); i != opFlags.end(); ) { string arg = *i++; if (parseInstallSourceOptions(globals, i, opFlags, arg)) ; @@ -722,7 +725,7 @@ static void opSet(Globals & globals, Strings opFlags, Strings opArgs) } debug(format("switching to new user environment")); - Path generation = createGeneration(globals.state->store, globals.profile, drv.queryOutPath()); + Path generation = createGeneration(ref<LocalFSStore>(store2), globals.profile, drv.queryOutPath()); switchLink(globals.profile, generation); } |