mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-22 14:06:16 +02:00
Merge pull request #10107 from tweag/repl-file-argument
Properly fail on flakerefs that don't point to a directory
This commit is contained in:
commit
73cf23275e
2 changed files with 14 additions and 4 deletions
|
@ -102,6 +102,19 @@ std::pair<FlakeRef, std::string> parsePathFlakeRefWithFragment(
|
||||||
|
|
||||||
if (isFlake) {
|
if (isFlake) {
|
||||||
|
|
||||||
|
if (!S_ISDIR(lstat(path).st_mode)) {
|
||||||
|
if (baseNameOf(path) == "flake.nix") {
|
||||||
|
// Be gentle with people who accidentally write `/foo/bar/flake.nix` instead of `/foo/bar`
|
||||||
|
warn(
|
||||||
|
"Path '%s' should point at the directory containing the 'flake.nix' file, not the file itself. "
|
||||||
|
"Pretending that you meant '%s'"
|
||||||
|
, path, dirOf(path));
|
||||||
|
path = dirOf(path);
|
||||||
|
} else {
|
||||||
|
throw BadURL("path '%s' is not a flake (because it's not a directory)", path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!allowMissing && !pathExists(path + "/flake.nix")){
|
if (!allowMissing && !pathExists(path + "/flake.nix")){
|
||||||
notice("path '%s' does not contain a 'flake.nix', searching up",path);
|
notice("path '%s' does not contain a 'flake.nix', searching up",path);
|
||||||
|
|
||||||
|
@ -124,9 +137,6 @@ std::pair<FlakeRef, std::string> parsePathFlakeRefWithFragment(
|
||||||
throw BadURL("could not find a flake.nix file");
|
throw BadURL("could not find a flake.nix file");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!S_ISDIR(lstat(path).st_mode))
|
|
||||||
throw BadURL("path '%s' is not a flake (because it's not a directory)", path);
|
|
||||||
|
|
||||||
if (!allowMissing && !pathExists(path + "/flake.nix"))
|
if (!allowMissing && !pathExists(path + "/flake.nix"))
|
||||||
throw BadURL("path '%s' is not a flake (because it doesn't contain a 'flake.nix' file)", path);
|
throw BadURL("path '%s' is not a flake (because it doesn't contain a 'flake.nix' file)", path);
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ mkdir subdir
|
||||||
pushd subdir
|
pushd subdir
|
||||||
|
|
||||||
success=("" . .# .#test ../subdir ../subdir#test "$PWD")
|
success=("" . .# .#test ../subdir ../subdir#test "$PWD")
|
||||||
failure=("path:$PWD")
|
failure=("path:$PWD" "../simple.nix")
|
||||||
|
|
||||||
for i in "${success[@]}"; do
|
for i in "${success[@]}"; do
|
||||||
nix build $i || fail "flake should be found by searching up directories"
|
nix build $i || fail "flake should be found by searching up directories"
|
||||||
|
|
Loading…
Reference in a new issue