hashFile
lib.filesystem.hashFile
Primop
Docs pulled from | This Revision | 12 minutes ago
Nix manual
Takes 2 arguments
type, p
Return a base-16 representation of the cryptographic hash of the
file at path p. The hash algorithm specified by type must be one
of "md5", "sha1", "sha256" or "sha512".
Noogle detected
Detected Type
hashFile :: String -> Path -> String
Implementation
This function is implemented in c++ and is part of the native nix runtime.
static void prim_hashFile(EvalState & state, const PosIdx pos, Value ** args, Value & v)
{
auto algo =
state.forceStringNoCtx(*args[0], pos, "while evaluating the first argument passed to builtins.hashFile");
std::optional<HashAlgorithm> ha = parseHashAlgo(algo);
if (!ha)
state.error<EvalError>("unknown hash algorithm '%1%'", algo).atPos(pos).debugThrow();
auto path = state.realisePath(pos, *args[1]);
v.mkString(hashString(*ha, path.readFile()).to_string(HashFormat::Base16, false), state.mem);
}
Implementation
The following is the current implementation of this function.
hashFile