summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/pkgdelta.sh.in5
1 files changed, 3 insertions, 2 deletions
diff --git a/scripts/pkgdelta.sh.in b/scripts/pkgdelta.sh.in
index a6aad3f6..39046b87 100644
--- a/scripts/pkgdelta.sh.in
+++ b/scripts/pkgdelta.sh.in
@@ -75,6 +75,7 @@ isnumeric() {
}
read_pkginfo() {
+ unset pkgver pkgname arch
while IFS='=' read -r field value; do
# skip comments and invalid lines
[[ $field = '#'* || -z $value ]] && continue
@@ -82,10 +83,10 @@ read_pkginfo() {
# skip lines which aren't fields we care about
[[ $field != @(pkgver|pkgname|arch) ]] || continue
- declare "$field=$value"
+ declare -g "${field% }=${value# }"
[[ $pkgname && $pkgver && $arch ]] && return 0
- done
+ done < <(bsdtar -xOqf "$1" .PKGINFO 2>/dev/null)
error "$(gettext "Invalid package file '%s'.")" "$1"
return 1