diff --git a/abuild.in b/abuild.in index f2b322d..557775e 100644 --- a/abuild.in +++ b/abuild.in @@ -210,7 +210,7 @@ default_sanitycheck() { [ -n "$pkggroup" ] && spell_error pkggroup pkggroups [ -n "$subpackage" ] && spell_error subpackage subpackages - grep '^# Maintainer:' $APKBUILD >/dev/null || warning "No maintainer" + get_maintainer || die "Provide a valid RFC822 maintainer address" makedepends_has 'g++' && warning "g++ should not be in makedepends" return 0 @@ -721,9 +721,25 @@ git_last_commit() { git log --format=oneline -n 1 "$startdir" | awk '{print $1}' } +# this will try to check for a valid rfc822 address +check_rfc822() { + local address="$1" + case "$address" in + *[A-Za-z0-9]*\ \<*@*.*\>) ;; + *) return 1 ;; + esac +} + get_maintainer() { if [ -z "$maintainer" ]; then maintainer=$(awk -F': ' '/\# *Maintainer/ {print $2}' "$APKBUILD") + # remove surrounding whitespace + maintainer=$(echo "$maintainer" | xargs) + if ! [ -z "$maintainer" ]; then + check_rfc822 "$maintainer" || return 1 + else + warning "No maintainer" + fi fi } @@ -789,7 +805,6 @@ EOF fi echo "commit = $last_commit" >> "$pkginfo" - get_maintainer if [ -n "$maintainer" ]; then echo "maintainer = $maintainer" >> "$pkginfo" fi