summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormorganamilo <morganamilo@gmail.com>2019-01-15 23:41:34 +0100
committerAllan McRae <allan@archlinux.org>2019-01-16 02:23:17 +0100
commitc15f7ae606683b3eb52ae5eaac7afc83cf04859b (patch)
tree0852dc251c0734410d5c39865d8e29b3da654569
parenta5090217f9ef3961153442577e8632310f79a272 (diff)
downloadpacman-c15f7ae606683b3eb52ae5eaac7afc83cf04859b.tar.gz
pacman-c15f7ae606683b3eb52ae5eaac7afc83cf04859b.tar.xz
libmakepkg: disallow using 'any' with other arches
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 <morganamilo@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--scripts/libmakepkg/lint_pkgbuild/arch.sh.in9
1 files changed, 7 insertions, 2 deletions
diff --git a/scripts/libmakepkg/lint_pkgbuild/arch.sh.in b/scripts/libmakepkg/lint_pkgbuild/arch.sh.in
index ef1aac46..3b1d0ce7 100644
--- a/scripts/libmakepkg/lint_pkgbuild/arch.sh.in
+++ b/scripts/libmakepkg/lint_pkgbuild/arch.sh.in
@@ -33,8 +33,13 @@ lint_pkgbuild_functions+=('lint_arch')
lint_arch() {
local a name list ret=0
- if [[ $arch == 'any' ]]; then
- return 0
+ if in_array "any" "${arch[@]}"; then
+ if (( ${#arch[@]} == 1 )); then
+ return 0;
+ else
+ error "$(gettext "Can not use '%s' architecture with other architectures")" "any"
+ return 1;
+ fi
fi
for a in "${arch[@]}"; do