diff --git a/TODO b/TODO index 579f95b..3e07c74 100644 --- a/TODO +++ b/TODO @@ -1,7 +1,3 @@ -- Better saintycheck: - * check that number of md5sums is correct - * verify that there is a Maintainer - - Automatically add $install to $source - Fetch sources from a specified mirror diff --git a/abuild b/abuild index 494dabb..d4ef499 100755 --- a/abuild +++ b/abuild @@ -71,6 +71,7 @@ die() { # check if apkbuild is basicly sane sanitycheck() { + local i msg "Checking sanity of $APKBUILD..." [ -z "$pkgname" ] && die "Missing pkgname in APKBUILD" [ -z "${pkgname##* *}" ] && die "pkgname contains spaces" @@ -82,24 +83,30 @@ sanitycheck() { [ -z "$url" ] && die "Missing url in APKBUILD" [ -z "$license" ] && die "Missing license in APKBULID" - if [ "$(echo $source | wc -l)" -ne "$(echo $md5sums | wc -l)" ]; then - die "Number of md5sums does not correspond to number of sources" - fi + for i in $source; do + md5sums_has ${i##*/} || die "${i##*/} is missing in md5sums" + done + + for i in $(echo "$md5sums" | awk '{ print $2 }'); do + source_has $i || die "$i is missing in source" + done # common spelling errors [ -n "$depend" ] && die "APKBUILD contains 'depend'. It should be depends" [ -n "$makedepend" ] && die "APKBUILD contains 'makedepend'. It should be makedepends" + + grep '^# Maintainer:' $APKBUILD >/dev/null || warning "No maintainer" return 0 } md5check() { + local dummy f if [ -z "$source" ]; then return 0 fi if [ -z "$md5sums" ]; then die "Use 'abuild checksum' to generate/update the checksum(s)" fi - if [ "$(echo $source | wc -l)" -ne "$(echo $md5sums | wc -l)" ]; then die "Number of md5sums does not correspond to number of sources" fi @@ -550,6 +557,14 @@ listpkg() { done } +source_has() { + local i + for i in $source; do + [ "$1" = "${i##*/}" ] && return 0 + done + return 1 +} + subpackages_has() { local i for i in $subpackages; do @@ -573,6 +588,10 @@ options_has() { list_has "$1" $options } +md5sums_has() { + list_has "$1" $md5sums +} + # install package after build post_add() { local pkgf="$PKGDEST/$1-$pkgver-r$pkgrel.apk"