Message ID | 20220111150637.40543-1-morganamilo@archlinux.org |
---|---|
State | Under Review |
Headers | show |
Series | makepkg: lint empty arrays | expand |
On 12/1/22 01:06, morganamilo wrote: > 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(-) I guess the depends check for empty values should also be removed to avoid double checking. Allan > 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 > +}
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 +}