Merge pull request #9079 from hercules-ci/backport-9022-to-2.18-maintenance
[Backport 2.18-maintenance] pathExists: isDir when endswith /.
This commit is contained in:
commit
7e2399b123
2 changed files with 24 additions and 1 deletions
|
@ -1528,7 +1528,9 @@ static void prim_pathExists(EvalState & state, const PosIdx pos, Value * * args,
|
||||||
auto path = realisePath(state, pos, arg, { .checkForPureEval = false });
|
auto path = realisePath(state, pos, arg, { .checkForPureEval = false });
|
||||||
|
|
||||||
/* SourcePath doesn't know about trailing slash. */
|
/* SourcePath doesn't know about trailing slash. */
|
||||||
auto mustBeDir = arg.type() == nString && arg.str().ends_with("/");
|
auto mustBeDir = arg.type() == nString
|
||||||
|
&& (arg.str().ends_with("/")
|
||||||
|
|| arg.str().ends_with("/."));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
auto checked = state.checkSourcePath(path);
|
auto checked = state.checkSourcePath(path);
|
||||||
|
|
|
@ -2,6 +2,27 @@ builtins.pathExists (./lib.nix)
|
||||||
&& builtins.pathExists (builtins.toPath ./lib.nix)
|
&& builtins.pathExists (builtins.toPath ./lib.nix)
|
||||||
&& builtins.pathExists (builtins.toString ./lib.nix)
|
&& builtins.pathExists (builtins.toString ./lib.nix)
|
||||||
&& !builtins.pathExists (builtins.toString ./lib.nix + "/")
|
&& !builtins.pathExists (builtins.toString ./lib.nix + "/")
|
||||||
|
&& !builtins.pathExists (builtins.toString ./lib.nix + "/.")
|
||||||
|
# FIXME
|
||||||
|
# && !builtins.pathExists (builtins.toString ./lib.nix + "/..")
|
||||||
|
# && !builtins.pathExists (builtins.toString ./lib.nix + "/a/..")
|
||||||
|
# && !builtins.pathExists (builtins.toString ./lib.nix + "/../lib.nix")
|
||||||
|
&& !builtins.pathExists (builtins.toString ./lib.nix + "/./")
|
||||||
|
&& !builtins.pathExists (builtins.toString ./lib.nix + "/./.")
|
||||||
|
&& builtins.pathExists (builtins.toString ./.. + "/lang/lib.nix")
|
||||||
|
&& !builtins.pathExists (builtins.toString ./.. + "lang/lib.nix")
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/../lang/lib.nix")
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/../lang/./lib.nix")
|
||||||
|
&& builtins.pathExists (builtins.toString ./.)
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/")
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/../lang")
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/../lang/")
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/../lang/.")
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/../lang/./")
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/../lang//./")
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/../lang/..")
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/../lang/../")
|
||||||
|
&& builtins.pathExists (builtins.toString ./. + "/../lang/..//")
|
||||||
&& builtins.pathExists (builtins.toPath (builtins.toString ./lib.nix))
|
&& builtins.pathExists (builtins.toPath (builtins.toString ./lib.nix))
|
||||||
&& !builtins.pathExists (builtins.toPath (builtins.toString ./bla.nix))
|
&& !builtins.pathExists (builtins.toPath (builtins.toString ./bla.nix))
|
||||||
&& builtins.pathExists ./lib.nix
|
&& builtins.pathExists ./lib.nix
|
||||||
|
|
Loading…
Reference in a new issue