mirror of
https://github.com/NixOS/nix
synced 2025-06-27 00:11:17 +02:00
Support empty hash in fetchers
fetchTarball, fetchTree, and fetchGit all have *optional* hash attrs. This means that we need to be careful with what we allow to avoid accidentally making these defaults. When ‘hash = ""’ we assume the empty hash is wanted.
This commit is contained in:
parent
762273f1fd
commit
19aa892f20
4 changed files with 32 additions and 12 deletions
|
@ -1131,9 +1131,14 @@ static void prim_path(EvalState & state, const Pos & pos, Value * * args, Value
|
|||
filterFun = attr.value;
|
||||
} else if (n == "recursive")
|
||||
method = FileIngestionMethod { state.forceBool(*attr.value, *attr.pos) };
|
||||
else if (n == "sha256")
|
||||
expectedHash = Hash(state.forceStringNoCtx(*attr.value, *attr.pos), htSHA256);
|
||||
else
|
||||
else if (n == "sha256") {
|
||||
auto hashStr = state.forceStringNoCtx(*attr.value, *attr.pos);
|
||||
if (hashStr == "") {
|
||||
expectedHash = Hash(htSHA256);
|
||||
printError("warning: found empty hash, assuming you wanted '%s'", expectedHash.to_string());
|
||||
} else
|
||||
expectedHash = Hash(hashStr, htSHA256);
|
||||
} else
|
||||
throw EvalError(format("unsupported argument '%1%' to 'addPath', at %2%") % attr.name % *attr.pos);
|
||||
}
|
||||
if (path.empty())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue