about summary refs log tree commit diff
path: root/src/nix-env/nix-env.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/nix-env/nix-env.cc')
-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 2f2f263f54a1..fa053d348411 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));