diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2023-06-14 20:41:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-14 20:41:22 +0200 |
commit | 05eb06a1deffba33c5f0012822c1a6d8832e5b49 (patch) | |
tree | 51696572dc7d9822f3e103d06a00646cd15448e4 | |
parent | 37bffbc28f9278ce427bbc917da18a026e96c398 (diff) | |
parent | 0e3849dc650250e36fb69c197a8a1fffe4f7d480 (diff) |
Merge pull request #8490 from flox/stdin_handling
fix: Do not apply default installables when using --stdin
-rw-r--r-- | src/libcmd/installables.cc | 6 | ||||
-rw-r--r-- | tests/build.sh | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/libcmd/installables.cc b/src/libcmd/installables.cc index a2b882355..10b077fb5 100644 --- a/src/libcmd/installables.cc +++ b/src/libcmd/installables.cc @@ -701,7 +701,7 @@ RawInstallablesCommand::RawInstallablesCommand() { addFlag({ .longName = "stdin", - .description = "Read installables from the standard input.", + .description = "Read installables from the standard input. No default installable applied.", .handler = {&readFromStdIn, true} }); @@ -730,9 +730,9 @@ void RawInstallablesCommand::run(ref<Store> store) while (std::cin >> word) { rawInstallables.emplace_back(std::move(word)); } + } else { + applyDefaultInstallables(rawInstallables); } - - applyDefaultInstallables(rawInstallables); run(store, std::move(rawInstallables)); } diff --git a/tests/build.sh b/tests/build.sh index 697aff0f9..8ae20f0df 100644 --- a/tests/build.sh +++ b/tests/build.sh @@ -129,3 +129,7 @@ nix build --impure -f multiple-outputs.nix --json e --no-link | jq --exit-status (.drvPath | match(".*multiple-outputs-e.drv")) and (.outputs | keys == ["a_a", "b"])) ' + +# Make sure that `--stdin` works and does not apply any defaults +printf "" | nix build --no-link --stdin --json | jq --exit-status '. == []' +printf "%s\n" "$drv^*" | nix build --no-link --stdin --json | jq --exit-status '.[0]|has("drvPath")' |