diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2020-08-14 17:19:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-14 17:19:19 +0200 |
commit | 13e49be6602314fe5e5d7beb8a807d5d892e864e (patch) | |
tree | e9dcdbcf58e0b45eb2abc068e9f475a28204c7be /src/nix | |
parent | 7714d9a943bd36e984a1531fbc367ce124fc94da (diff) | |
parent | 1d2e80ddd669ef6da94c0f8c8ad734c1b0cf7d10 (diff) |
Merge pull request #3875 from obsidiansystems/new-interface-for-path-pathOpt
Offer a safer interface for path and pathOpt
Diffstat (limited to 'src/nix')
-rw-r--r-- | src/nix/installables.cc | 4 | ||||
-rw-r--r-- | src/nix/repl.cc | 4 | ||||
-rw-r--r-- | src/nix/show-derivation.cc | 6 |
3 files changed, 7 insertions, 7 deletions
diff --git a/src/nix/installables.cc b/src/nix/installables.cc index ea152709f..d34f87982 100644 --- a/src/nix/installables.cc +++ b/src/nix/installables.cc @@ -304,8 +304,8 @@ struct InstallableStorePath : Installable if (storePath.isDerivation()) { std::map<std::string, StorePath> outputs; auto drv = store->readDerivation(storePath); - for (auto & [name, output] : drv.outputs) - outputs.emplace(name, output.path(*store, drv.name)); + for (auto & i : drv.outputsAndPaths(*store)) + outputs.emplace(i.first, i.second.second); return { BuildableFromDrv { .drvPath = storePath, diff --git a/src/nix/repl.cc b/src/nix/repl.cc index c3c9e54a8..a74655200 100644 --- a/src/nix/repl.cc +++ b/src/nix/repl.cc @@ -490,8 +490,8 @@ bool NixRepl::processLine(string line) if (runProgram(settings.nixBinDir + "/nix", Strings{"build", "--no-link", drvPath}) == 0) { auto drv = readDerivation(*state->store, drvPath, Derivation::nameFromPath(state->store->parseStorePath(drvPath))); std::cout << std::endl << "this derivation produced the following outputs:" << std::endl; - for (auto & i : drv.outputs) - std::cout << fmt(" %s -> %s\n", i.first, state->store->printStorePath(i.second.path(*state->store, drv.name))); + for (auto & i : drv.outputsAndPaths(*state->store)) + std::cout << fmt(" %s -> %s\n", i.first, state->store->printStorePath(i.second.second)); } } else if (command == ":i") { runProgram(settings.nixBinDir + "/nix-env", Strings{"-i", drvPath}); diff --git a/src/nix/show-derivation.cc b/src/nix/show-derivation.cc index 1b51d114f..8c4bfb03e 100644 --- a/src/nix/show-derivation.cc +++ b/src/nix/show-derivation.cc @@ -67,9 +67,9 @@ struct CmdShowDerivation : InstallablesCommand { auto outputsObj(drvObj.object("outputs")); - for (auto & output : drv.outputs) { + for (auto & output : drv.outputsAndPaths(*store)) { auto outputObj(outputsObj.object(output.first)); - outputObj.attr("path", store->printStorePath(output.second.path(*store, drv.name))); + outputObj.attr("path", store->printStorePath(output.second.second)); std::visit(overloaded { [&](DerivationOutputInputAddressed doi) { @@ -81,7 +81,7 @@ struct CmdShowDerivation : InstallablesCommand [&](DerivationOutputCAFloating dof) { outputObj.attr("hashAlgo", makeFileIngestionPrefix(dof.method) + printHashType(dof.hashType)); }, - }, output.second.output); + }, output.second.first.output); } } |