summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormorganamilo <morganamilo@gmail.com>2018-10-16 18:49:23 +0100
committerAllan McRae <allan@archlinux.org>2018-10-21 19:08:03 +1000
commit2c91d08e62dd13979192df4a0b2ca76bde87cfd0 (patch)
tree1c9c87c8091bc26083555f6a7c17a2c6cd44fd43
parent79a528735ee198ac880b65d946cfde9181872b44 (diff)
downloadpacman-2c91d08e62dd13979192df4a0b2ca76bde87cfd0.tar.xz
libmakepkg: fix linting arrays of empty strings
[[ ${array[@]} ]] will resolve to false if array only contains empty strings. This means that values such as "depends=('')" can be inserted into a pkgbuild and bypass the linting. This causes makepkg to successfully build the package while pacman refuses to install it because of the unmet dependency on ''. Instead check the length of the array. Signed-off-by: morganamilo <morganamilo@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--scripts/libmakepkg/util/pkgbuild.sh.in4
1 files changed, 2 insertions, 2 deletions
diff --git a/scripts/libmakepkg/util/pkgbuild.sh.in b/scripts/libmakepkg/util/pkgbuild.sh.in
index c6f8a82d..b29229a3 100644
--- a/scripts/libmakepkg/util/pkgbuild.sh.in
+++ b/scripts/libmakepkg/util/pkgbuild.sh.in
@@ -60,7 +60,7 @@ extract_global_variable() {
if (( isarray )); then
array_build ref "$attr"
- [[ ${ref[@]} ]] && array_build "$outputvar" "$attr"
+ (( ${#ref[@]} )) && array_build "$outputvar" "$attr"
else
[[ ${!attr} ]] && printf -v "$outputvar" %s "${!attr}"
fi
@@ -144,7 +144,7 @@ get_pkgbuild_all_split_attributes() {
done
done
- [[ ${all_list[@]} ]] && array_build "$outputvar" all_list
+ (( ${#all_list[@]} )) && array_build "$outputvar" all_list
}
##