1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-29 14:53:16 +02:00

Fix dirOf on the root of a flake

This commit is contained in:
Eelco Dolstra 2022-11-16 14:21:07 +01:00
parent 4072024d79
commit 64a69b4054
3 changed files with 6 additions and 1 deletions

View file

@ -1521,7 +1521,7 @@ static void prim_dirOf(EvalState & state, const PosIdx pos, Value * * args, Valu
state.forceValue(*args[0], pos);
if (args[0]->type() == nPath) {
auto path = args[0]->path();
v.mkPath(path.parent());
v.mkPath(path.path.isRoot() ? path : path.parent());
} else {
auto path = state.coerceToString(pos, *args[0], context, false, false);
auto dir = dirOf(*path);

View file

@ -23,6 +23,8 @@ writeSimpleFlake() {
# To test "nix flake init".
legacyPackages.x86_64-linux.hello = import ./simple.nix;
parent = builtins.dirOf ./.;
};
}
EOF

View file

@ -121,6 +121,9 @@ nix build -o $TEST_ROOT/result --expr "(builtins.getFlake \"$flake1Dir\").packag
# 'getFlake' on a locked flakeref should succeed even in pure mode.
nix build -o $TEST_ROOT/result --expr "(builtins.getFlake \"git+file://$flake1Dir?rev=$hash2\").packages.$system.default"
# Regression test for dirOf on the root of the flake.
[[ $(nix eval --json flake1#parent) = '"/"' ]]
# Building a flake with an unlocked dependency should fail in pure mode.
(! nix build -o $TEST_ROOT/result flake2#bar --no-registries)
(! nix build -o $TEST_ROOT/result flake2#bar --no-use-registries)