From 517ca95d8d0f775af33cfcb10c7f8784f548c2a2 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Mon, 7 Apr 2025 21:16:20 +0200 Subject: [PATCH] pkgs/den-http-get-updater: support providing target hash --- pkgs/by-name/de/den-http-get-updater/package.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/de/den-http-get-updater/package.nix b/pkgs/by-name/de/den-http-get-updater/package.nix index 7a00d66..b6ba547 100644 --- a/pkgs/by-name/de/den-http-get-updater/package.nix +++ b/pkgs/by-name/de/den-http-get-updater/package.nix @@ -21,6 +21,8 @@ # file: string; # attrpath: string[]' # }; + # prefetchHash: string?; + # targetHash: string?; # }[] # prefetchList ? [], @@ -34,6 +36,8 @@ contentParser ? "echo \"$newVersion\"", unpack ? true, + hashAlgo ? "sha256", + hashFormat ? "sri", name ? if unpack then "source" else null, }: @@ -48,7 +52,7 @@ let ); assert lib.isAttrs x.prefetchUrlLocation && lib.isString x.prefetchUrlLocation.attrpath or null; rec { - inherit fileLocation; + inherit fileLocation hashAlgo hashFormat; mark = builtins.hashString "sha256" x.previousHash; markRegexEscape = lib.escapeRegex mark; realFileLocation = builtins.toString x.fileLocation or fileLocation; @@ -123,7 +127,12 @@ writeScript "den-http-get-updater" ('' prefetchSucceeded=1 for url in "''${prefetchUrls[@]}"; do echo "trying prefetch '$url'..."; - expectedHash=$(nix-prefetch-url "$url" ${nixUnpack} ${nixName}) + expectedHash=$(nix-prefetch-url "$url" ${nixUnpack} ${nixName} --type "${hashAlgo}") + expectedHash=$(nix --extra-experimental-features "nix-command" hash convert \ + --hash-algo "${hashAlgo}" \ + --to "${hashFormat}" \ + "$expectedHash" + ) if [[ -n $expectedHash ]]; then echo "prefetch succeeded!" echo "hash: $expectedHash"