summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apkgrel.in13
-rw-r--r--functions.sh.in13
2 files changed, 23 insertions, 3 deletions
diff --git a/apkgrel.in b/apkgrel.in
index 1d178aa..94acd55 100644
--- a/apkgrel.in
+++ b/apkgrel.in
@@ -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