diff options
-rw-r--r-- | apkgrel.in | 13 | ||||
-rw-r--r-- | functions.sh.in | 13 |
2 files changed, 23 insertions, 3 deletions
@@ -45,9 +45,8 @@ do_add () { local f= old= for f; do [ -n "$only_clean_git" ] \ - && [ -n "$(git diff --name-only "$f")" ] \ + && [ -n "$(git diff --name-only "${f%/*}")" ] \ && continue - [ -d "$f" ] && f="$f/APKBUILD" old=$(show_plain "$f") case $old in [0-9]*) setto=$((old + 1));; @@ -61,7 +60,6 @@ do_verify() { [ -n "$force" ] && return 0 local f= rc=0 for f; do - [ -d "$f" ] && f="$f/APKBUILD" if ! grep -q '^pkgrel=[0-9]' "$f"; then error "no proper \$pkgrel for $f" rc=1 @@ -124,6 +122,15 @@ if [ $# -eq 0 ]; then exit 2 fi +# normalize $@ into paths to APKBUILDs +[ "$(echo "$@" | wc -l)" -eq 1 ] || die "can't handle paths with embedded newlines" +args=$(for a; do p=$(any_buildscript "$a") || die "can't find APKBUILD for $a"; echo "$p"; done) +[ $? -eq 0 ] || exit 1 +oldifs=$IFS +IFS=$'\n' +set -- $args +IFS=$oldifs + do_verify "$@" || exit 1 $cmd "$@" diff --git a/functions.sh.in b/functions.sh.in index a25c39a..ab4dff5 100644 --- a/functions.sh.in +++ b/functions.sh.in @@ -30,6 +30,19 @@ aports_buildscript() { fi } +# expects $1 to be a file, or a directory containing an APKBUILD, or a package directory in the aports tree +# outputs APKBUILD's path if successful (doesn't verify that it's a valid APKBUILD) +any_buildscript() { + if [ -f "$1" ]; then + echo "$1" + elif [ -d "$1" ]; then + [ -f "$1/APKBUILD" ] || return 1 + echo "$1/APKBUILD" + else + aports_buildscript "$1" || return 1 + fi +} + # output functions case $prog in |