diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2017-04-25 16:19:22 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2017-04-25 16:19:22 +0200 |
commit | c30330df6f67c81986dfb124631bc756c8e58c0d (patch) | |
tree | ae398eedf65b06cba340292893afce6a041e7299 /src/nix/installables.cc | |
parent | d48c973ece20875391bebde3c167d6e0cc1e666e (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.cc | 11 |
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() |