aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nix-env/nix-env.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/nix-env/nix-env.cc b/src/nix-env/nix-env.cc
index 2f2f263f5..fa053d348 100644
--- a/src/nix-env/nix-env.cc
+++ b/src/nix-env/nix-env.cc
@@ -791,10 +791,17 @@ static void opSet(Globals & globals,
DrvInfo & drv(elems.front());
- if (drv.queryDrvPath(globals.state) != "")
- store->buildDerivations(singleton<PathSet>(drv.queryDrvPath(globals.state)));
- else
+ if (drv.queryDrvPath(globals.state) != "") {
+ PathSet paths = singleton<PathSet>(drv.queryDrvPath(globals.state));
+ printMissing(paths);
+ if (globals.dryRun) return;
+ store->buildDerivations(paths);
+ }
+ else {
+ printMissing(singleton<PathSet>(drv.queryOutPath(globals.state)));
+ if (globals.dryRun) return;
store->ensurePath(drv.queryOutPath(globals.state));
+ }
debug(format("switching to new user environment"));
Path generation = createGeneration(globals.profile, drv.queryOutPath(globals.state));