feat(tvix/eval): implement builtins.hashFile

The primary addition is the `builtin_hashFile` function which attempts
value-path coercion and on success reads the file to a nix_string.
Similar to the `builtins_hashString` implementation, the hash is then
derived using the `hash_nix_string` function in the introduced hash
module which has extracted hashing functionality initially specified in
cl/11005.

Change-Id: I5e3ef0317223af99488ebb79efc2fb49b4cbc1b6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11007
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
Padraic-O-Mhuiris 2024-02-22 15:33:29 +00:00 committed by Pádraic Ó Mhuiris
parent 5acaa672ac
commit e0ffb4d47a
6 changed files with 42 additions and 25 deletions

View file

@ -1,4 +1,4 @@
let
paths = [ ./../data ./../binary-data ];
paths = [ ./data ./binary-data ];
in
builtins.concatLists (map (hash: map (builtins.hashFile hash) paths) ["md5" "sha1" "sha256" "sha512"])