diff options
-rw-r--r-- | src/nix-env/nix-env.cc | 13 |
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)); |