From 8f6f8763cf9e050967f78df354a6894c0bde87da Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Mon, 4 Apr 2011 11:18:29 +0000 Subject: abuild: fix check if abuildindex is up 2 date --- abuild.in | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'abuild.in') 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 } -- cgit v1.2.3-60-g2f50