From 117e151a2164a47c436436e644514ce2bcf09b07 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Petr=20=C5=A0tetiar?= Date: Sun, 29 Sep 2024 18:21:02 +0000 Subject: [PATCH] scripts: signall: fix finish function not called when apk adbsign failed MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The `finish 3` was not being called when the `apk adbsign` command failed within the `find` command using `-exec`. This happened because `find` does not exit with a non-zero status when the command executed by `-exec` fails, so the `|| finish 3` condition was not triggered. So lets replace the `find ... -exec ...` construct with a loop and call `finish 3` immediately if it fails. Fixes: a94d4e15fdc1 ("add APK signing logic") Signed-off-by: Petr Å tetiar --- scripts/signall.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/signall.sh b/scripts/signall.sh index 4c7ef49..7b22386 100755 --- a/scripts/signall.sh +++ b/scripts/signall.sh @@ -76,8 +76,11 @@ if [ -n "$APKSIGNKEY" ]; then echo "$APKSIGNKEY" > "$tmpdir/apk.pem" umask 022 - find "$tmpdir/tar/" -type f -name "packages.adb" -exec \ - "${APK_BIN:-apk}" adbsign --allow-untrusted --sign-key "$(readlink -f "$tmpdir/apk.pem")" "{}" \; || finish 3 + find "$tmpdir/tar/" -type f -name "packages.adb" -print0 | while IFS= read -r -d '' file; do + if ! "${APK_BIN:-apk}" adbsign --allow-untrusted --sign-key "$(readlink -f "$tmpdir/apk.pem")" "$file"; then + finish 3 + fi + done find "$tmpdir/tar/" -type f -name sha256sums | while read -r file; do dir=$(dirname "$file") -- 2.30.2