summaryrefslogtreecommitdiff
path: root/abuild.in
diff options
context:
space:
mode:
Diffstat (limited to 'abuild.in')
-rwxr-xr-xabuild.in29
1 files changed, 22 insertions, 7 deletions
diff --git a/abuild.in b/abuild.in
index 178fe42..f78329d 100755
--- a/abuild.in
+++ b/abuild.in
@@ -1007,17 +1007,32 @@ apk_up2date() {
}
abuildindex_up2date() {
- local i j apk
+ local i
getpkgver || return 1
for i in $pkgname $subpackages; do
- apk="${i%:*}-$pkgver-r$pkgrel.apk"
- for j in "$abuildrepo"/*/$apk; do
- [ -r "$j" ] || continue # ignore missing files
- local idx="${j%/*}"/APKINDEX.tar.gz
- if ! [ "$idx" -nt "$j" ]; then
- return 1
+ local found= dir=
+ local apk="${i%:*}-$pkgver-r$pkgrel.apk"
+
+ # look for file in all arch dirs
+ for dir in "$abuildrepo"/*; do
+ [ -d "$dir" ] || continue
+ local file="$dir"/$apk
+ local idx="$dir"/APKINDEX.tar.gz
+
+ # check if index is missing
+ [ -f "$idx" ] || return 1
+
+ # check if file is there but is newer than index
+ if [ -f "$file" ]; then
+ found=1
+ if [ "$file" -nt "$idx" ]; then
+ return 1
+ fi
fi
done
+
+ # we are not up2date if file was not found in any arch dir
+ [ -z "$found" ] && return 1
done
return 0
}