Accept empty directories
This commit is contained in:
parent
fa88f71520
commit
a37436d792
2 changed files with 5 additions and 2 deletions
|
@ -285,7 +285,10 @@ Flake getFlake(EvalState & state, const FlakeRef & flakeRef, bool impureIsAllowe
|
||||||
+ "/" + flake.sourceInfo.rev->to_string(Base16, false));
|
+ "/" + flake.sourceInfo.rev->to_string(Base16, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
Path flakeFile = sourceInfo.storePath + "/" + resolvedRef.subdir + "/flake.nix";
|
// Guard against symlink attacks.
|
||||||
|
auto flakeFile = canonPath(sourceInfo.storePath + "/" + resolvedRef.subdir + "/flake.nix");
|
||||||
|
if (!isInDir(flakeFile, sourceInfo.storePath))
|
||||||
|
throw Error("flake file '%s' escapes from '%s'", resolvedRef, sourceInfo.storePath);
|
||||||
if (!pathExists(flakeFile))
|
if (!pathExists(flakeFile))
|
||||||
throw Error("source tree referenced by '%s' does not contain a '%s/flake.nix' file", resolvedRef, resolvedRef.subdir);
|
throw Error("source tree referenced by '%s' does not contain a '%s/flake.nix' file", resolvedRef, resolvedRef.subdir);
|
||||||
|
|
||||||
|
|
|
@ -107,7 +107,7 @@ FlakeRef::FlakeRef(const std::string & uri, bool allowRelative)
|
||||||
throw Error("invalid Git ref '%s'", value);
|
throw Error("invalid Git ref '%s'", value);
|
||||||
ref = value;
|
ref = value;
|
||||||
} else if (name == "dir") {
|
} else if (name == "dir") {
|
||||||
if (!std::regex_match(value, subDirRegex2))
|
if (value != "" && !std::regex_match(value, subDirRegex2))
|
||||||
throw Error("flake '%s' has invalid subdirectory '%s'", uri, value);
|
throw Error("flake '%s' has invalid subdirectory '%s'", uri, value);
|
||||||
subdir = value;
|
subdir = value;
|
||||||
} else
|
} else
|
||||||
|
|
Loading…
Reference in a new issue