diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2019-05-31 22:17:39 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2019-05-31 22:17:39 +0200 |
commit | 8cb3bbd5044b8fbfc65f13455d1619a78ccf33a5 (patch) | |
tree | cd63e4b68b00abc1d0175c53b40b54ec61175270 | |
parent | 8abb8647a33c3516026cd8a2954d34633377b23c (diff) |
Fix handling of bare flakerefs containing a colon
-rw-r--r-- | src/nix/installables.cc | 8 | ||||
-rw-r--r-- | tests/flakes.sh | 3 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/nix/installables.cc b/src/nix/installables.cc index 40248eb5d..38ae416e3 100644 --- a/src/nix/installables.cc +++ b/src/nix/installables.cc @@ -314,6 +314,10 @@ std::vector<std::shared_ptr<Installable>> SourceExprCommand::parseInstallables( Strings{"packages." + std::string(s, 8)})); } + else if (auto flakeRef = parseFlakeRef(s, true)) + result.push_back(std::make_shared<InstallableFlake>(*this, s, + getDefaultFlakeAttrPaths())); + else if ((colon = s.rfind(':')) != std::string::npos) { auto flakeRef = std::string(s, 0, colon); auto attrPath = std::string(s, colon + 1); @@ -332,10 +336,6 @@ std::vector<std::shared_ptr<Installable>> SourceExprCommand::parseInstallables( getDefaultFlakeAttrPaths())); } - else if (auto flakeRef = parseFlakeRef(s, true)) - result.push_back(std::make_shared<InstallableFlake>(*this, s, - getDefaultFlakeAttrPaths())); - else result.push_back(std::make_shared<InstallableFlake>(*this, FlakeRef("nixpkgs"), s)); } diff --git a/tests/flakes.sh b/tests/flakes.sh index 8b9cb7260..c4dd8c333 100644 --- a/tests/flakes.sh +++ b/tests/flakes.sh @@ -134,6 +134,9 @@ nix build -o $TEST_ROOT/result --flake-registry $registry flake1:foo nix build -o $TEST_ROOT/result --flake-registry $registry flake1 [[ -e $TEST_ROOT/result/hello ]] +nix build -o $TEST_ROOT/result --flake-registry $registry $flake1Dir +nix build -o $TEST_ROOT/result --flake-registry $registry file://$flake1Dir + # Building a flake with an unlocked dependency should fail in pure mode. (! nix eval "(builtins.getFlake "$flake2Dir")") |