From 290fa5b7e434bdd3962df5ec50f9d473d9246634 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Tue, 18 Feb 2020 12:00:43 +0100 Subject: xgensum: return non-zero if getting the digest failed Fixes #167. --- xgensum | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/xgensum b/xgensum index b9658dd..00a9b14 100755 --- a/xgensum +++ b/xgensum @@ -54,6 +54,7 @@ fi "$XBPS_DISTDIR/xbps-src" -H $FLAG_h -I fetch $pkgname +ret=0 sums="" for f in $distfiles; do curfile="${f#*>}" @@ -63,22 +64,24 @@ for f in $distfiles; do sum="@" case ${distfile} in *tar.lzma|*.tar|*.txz|*.tar.xz|*.tbz|*.tar.gz) - sum+=$(xbps-uhelper digest <(tar xf "$distfile" --to-stdout)) + sum+=$(xbps-uhelper digest <(tar xf "$distfile" --to-stdout)) || ret=1 ;; *.gz) - sum+=$(xbps-uhelper digest <(gunzip -c "$distfile")) + sum+=$(xbps-uhelper digest <(gunzip -c "$distfile")) || ret=1 ;; *.tar.bz2|*.bz2) - sum+=$(xbps-uhelper digest <(bunzip2 -c "$distfile")) + sum+=$(xbps-uhelper digest <(bunzip2 -c "$distfile")) || ret=1 ;; *.zip) if command -v unzip &>/dev/null; then sum+=$(xbps-uhelper digest <(unzip -p "$distfile")) if [ $? -ne 0 ]; then echo "$pkgver: extracting $curfile to pipe." + ret=1 fi else echo "$pkgver: cannot find unzip bin for extraction." + ret=1 fi ;; *.rpm) @@ -86,9 +89,11 @@ for f in $distfiles; do sum+=$(xbps-uhelper digest <(rpm2cpio "$distfile" | bsdtar xf - --to-stdout)) if [ $? -ne 0 ]; then echo "$pkgver: extracting $curfile to pipe." + ret=1 fi else echo "$pkgver: cannot find rpmextract for extraction." + ret=1 fi ;; *.7z) @@ -96,20 +101,22 @@ for f in $distfiles; do sum+=$(xbps-uhelper digest <(7z x -o "$distfile")) if [ $? -ne 0 ]; then echo "$pkgver: extracting $curfile to pipe." + ret=1 fi else echo "$pkgver: cannot find 7z bin for extraction." + ret=1 fi ;; *.txt|*.patch|*.diff) - sum+=$(xbps-uhelper digest "$distfile") + sum+=$(xbps-uhelper digest "$distfile") || ret=1 ;; *) - sum=$(xbps-uhelper digest $distfile) + sum=$(xbps-uhelper digest $distfile) || ret=1 esac else - sum=$(xbps-uhelper digest $distfile) + sum=$(xbps-uhelper digest $distfile) || ret=1 fi sums+="${sum% *}\n " done @@ -118,4 +125,6 @@ sed $FLAG_i -e "/^checksum=/,/^[^ \t]/{ /^[ \t]/d s/^checksum=.*/checksum=\"${sums%\n }\"/ /^checksum=\"[^ ]*\"/s/\"//g - }" "$template" + }" "$template" || ret=1 + +exit $ret -- cgit 1.4.1