From e628b43a9c2aff685e420028b58a4376e3117c8a Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 24 Sep 2022 14:52:38 +0200 Subject: common-updater-scripts: fix silent error on 404 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When TOFU was unable to download the file, there would be no hash in the fetch log, causing the grep to fail. Since the script is set to errexit, it would terminate the processing without any output. Let’s instead print the fetch log. --- pkgs/common-updater/scripts/update-source-version | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'pkgs/common-updater') diff --git a/pkgs/common-updater/scripts/update-source-version b/pkgs/common-updater/scripts/update-source-version index 12a63fa92605c..75ad6e7a5cf55 100755 --- a/pkgs/common-updater/scripts/update-source-version +++ b/pkgs/common-updater/scripts/update-source-version @@ -237,9 +237,13 @@ fi if [[ -z "$newHash" ]]; then nix-build $systemArg --no-out-link -A "$attr.$sourceKey" 2>"$attr.fetchlog" >/dev/null || true # FIXME: use nix-build --hash here once https://github.com/NixOS/nix/issues/1172 is fixed - newHash=$(sed '1,/hash mismatch in fixed-output derivation/d' "$attr.fetchlog" | grep --perl-regexp --only-matching 'got: +.+[:-]\K.+') + newHash=$( + sed '1,/hash mismatch in fixed-output derivation/d' "$attr.fetchlog" \ + | grep --perl-regexp --only-matching 'got: +.+[:-]\K.+' \ + || true # handled below + ) - if [[ -n "$sri" ]]; then + if [[ -n "$newHash" && -n "$sri" ]]; then # nix-build preserves the hashing scheme so we can just convert the result to SRI using the old type newHash="$(nix --extra-experimental-features nix-command hash to-sri --type "$oldHashAlgo" "$newHash" 2>/dev/null \ || nix to-sri --type "$oldHashAlgo" "$newHash" 2>/dev/null)" \ -- cgit 1.4.1