index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in | 53 |
diff --git a/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in b/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in index 4024253e..d51c6313 100644 --- a/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in +++ b/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in @@ -29,34 +29,43 @@ source "$LIBRARY/util/message.sh" lint_pkgbuild_functions+=('lint_pkgname') +lint_one_pkgname() { + local type=$1 name=$2 ret=0 + + + if [[ -z $name ]]; then + error "$(gettext "%s is not allowed to be empty.")" "$type" + ret=1 + continue + fi + if [[ ${name:0:1} = "-" ]]; then + error "$(gettext "%s is not allowed to start with a hyphen.")" "$type" + ret=1 + fi + if [[ ${name:0:1} = "." ]]; then + error "$(gettext "%s is not allowed to start with a dot.")" "$type" + ret=1 + fi + if [[ $name = *[^[:alnum:]+_.@-]* ]]; then + error "$(gettext "%s contains invalid characters: '%s'")" \ + "$type" "${name//[[:alnum:]+_.@-]}" + ret=1 + fi + + return $ret +} + lint_pkgname() { local ret=0 i if [[ -z ${pkgname[@]} ]]; then error "$(gettext "%s is not allowed to be empty.")" "pkgname" - return 1 + ret=1 + else + for i in "${pkgname[@]}"; do + lint_one_pkgname "pkgname" "$i" || ret=1 + done fi - for i in "${pkgname[@]}"; do - if [[ -z $i ]]; then - error "$(gettext "%s is not allowed to be empty.")" "pkgname" - ret=1 - continue - fi - if [[ ${i:0:1} = "-" ]]; then - error "$(gettext "%s is not allowed to start with a hyphen.")" "pkgname" - ret=1 - fi - if [[ ${i:0:1} = "." ]]; then - error "$(gettext "%s is not allowed to start with a dot.")" "pkgname" - ret=1 - fi - if [[ $i = *[^[:alnum:]+_.@-]* ]]; then - error "$(gettext "%s contains invalid characters: '%s'")" \ - 'pkgname' "${i//[[:alnum:]+_.@-]}" - ret=1 - fi - done - return $ret } |