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 <ynezz@true.cz>
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")