aboutsummaryrefslogtreecommitdiff
path: root/src/nix/installables.cc
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-04-25 16:19:22 +0200
committerEelco Dolstra <edolstra@gmail.com>2017-04-25 16:19:22 +0200
commitc30330df6f67c81986dfb124631bc756c8e58c0d (patch)
treeae398eedf65b06cba340292893afce6a041e7299 /src/nix/installables.cc
parentd48c973ece20875391bebde3c167d6e0cc1e666e (diff)
StorePathCommands: Build installables
So for instance "nix copy --to ... nixpkgs.hello" will build nixpkgs.hello first. It's debatable whether this is a good idea. It seems desirable for commands like "nix copy" but maybe not for commands like "nix path-info".
Diffstat (limited to 'src/nix/installables.cc')
-rw-r--r--src/nix/installables.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/nix/installables.cc b/src/nix/installables.cc
index ff345c45d..57580049f 100644
--- a/src/nix/installables.cc
+++ b/src/nix/installables.cc
@@ -228,7 +228,16 @@ PathSet InstallablesCommand::buildInstallables(ref<Store> store, bool dryRun)
if (!dryRun)
store->buildPaths(buildables);
- return buildables;
+ PathSet outPaths;
+ for (auto & path : buildables)
+ if (isDerivation(path)) {
+ Derivation drv = store->derivationFromPath(path);
+ for (auto & output : drv.outputs)
+ outPaths.insert(output.second.path);
+ } else
+ outPaths.insert(path);
+
+ return outPaths;
}
ref<EvalState> InstallablesCommand::getEvalState()