Error if the arch array contains any and any other values. This also
fixes a bug where the check for `$arch == 'any'` which only evaluated
the first value in the array, meaning the rest of the values would not
be linted.

Signed-off-by: morganamilo <[email protected]>
---
 scripts/libmakepkg/lint_pkgbuild/arch.sh.in | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/scripts/libmakepkg/lint_pkgbuild/arch.sh.in 
b/scripts/libmakepkg/lint_pkgbuild/arch.sh.in
index f2c80c73..98ae70af 100644
--- a/scripts/libmakepkg/lint_pkgbuild/arch.sh.in
+++ b/scripts/libmakepkg/lint_pkgbuild/arch.sh.in
@@ -38,11 +38,12 @@ lint_arch() {
                return 1
        fi
 
-       if [[ $arch == 'any' ]]; then
-               return 0
-       fi
-
        for a in "${arch[@]}"; do
+               if [[ $a == 'any' ]]; then
+                       error "$(gettext "any can not be used with other 
architectures")"
+                       ret=1
+               fi
+
                if [[ $a = *[![:alnum:]_]* ]]; then
                        error "$(gettext "%s contains invalid characters: 
'%s'")" \
                                        'arch' "${a//[[:alnum:]_]}"
@@ -50,6 +51,10 @@ lint_arch() {
                fi
        done
 
+       if [[ $arch == 'any' ]]; then
+               return $ret
+       fi
+
        if (( ! IGNOREARCH )) && ! in_array "$CARCH" "${arch[@]}"; then
                error "$(gettext "%s is not available for the '%s' 
architecture.")" "$pkgbase" "$CARCH"
                return 1
-- 
2.17.1

Reply via email to