forked from lix-project/lix
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));
|
||||
}
|
||||
|
||||
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))
|
||||
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);
|
||||
ref = value;
|
||||
} 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);
|
||||
subdir = value;
|
||||
} else
|
||||
|
|
Loading…
Reference in a new issue