makepkg: lint empty arrays

Message ID 20211007212555.194957-1-morganamilo@archlinux.org
State Superseded, archived
Headers show
Series makepkg: lint empty arrays | expand

Commit Message

morganamilo Oct. 7, 2021, 9:25 p.m. UTC
While depend arrays are already linted, many array kinds are still
not. An empty string is never a valid array value so check all
arrays for it.
---
 .../libmakepkg/lint_pkgbuild/variable.sh.in   | 20 ++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

Patch

diff --git a/scripts/libmakepkg/lint_pkgbuild/variable.sh.in b/scripts/libmakepkg/lint_pkgbuild/variable.sh.in
index b4428344..d0951258 100644
--- a/scripts/libmakepkg/lint_pkgbuild/variable.sh.in
+++ b/scripts/libmakepkg/lint_pkgbuild/variable.sh.in
@@ -28,7 +28,7 @@  source "$LIBRARY/util/pkgbuild.sh"
 source "$LIBRARY/util/schema.sh"
 
 lint_pkgbuild_functions+=('lint_variable')
-
+lint_pkgbuild_functions+=('lint_array')
 
 lint_variable() {
 	local i a pkg out bad ret=0
@@ -95,3 +95,21 @@  lint_variable() {
 
 	return $ret
 }
+
+lint_array() {
+	local i var ret=0
+
+	for i in ${pkgbuild_schema_arrays[@]}; do
+		local l=()
+		get_pkgbuild_all_split_attributes $i l
+
+		for var in "${l[@]}"; do
+			if [[ -z $var ]]; then
+				error "$(gettext "%s does not allow empty values.")" "$i"
+				ret=1
+			fi
+		done
+	done
+
+	return $ret
+}