apkgrel, functions: refactor calculation of APKBUILD's path

This commit is contained in:
Dubiousjim 2013-07-05 00:21:38 -04:00 committed by Natanael Copa
parent b2d6b47be1
commit 89afa41792
2 changed files with 23 additions and 3 deletions

View File

@ -45,9 +45,8 @@ do_add () {
local f= old= local f= old=
for f; do for f; do
[ -n "$only_clean_git" ] \ [ -n "$only_clean_git" ] \
&& [ -n "$(git diff --name-only "$f")" ] \ && [ -n "$(git diff --name-only "${f%/*}")" ] \
&& continue && continue
[ -d "$f" ] && f="$f/APKBUILD"
old=$(show_plain "$f") old=$(show_plain "$f")
case $old in case $old in
[0-9]*) setto=$((old + 1));; [0-9]*) setto=$((old + 1));;
@ -61,7 +60,6 @@ do_verify() {
[ -n "$force" ] && return 0 [ -n "$force" ] && return 0
local f= rc=0 local f= rc=0
for f; do for f; do
[ -d "$f" ] && f="$f/APKBUILD"
if ! grep -q '^pkgrel=[0-9]' "$f"; then if ! grep -q '^pkgrel=[0-9]' "$f"; then
error "no proper \$pkgrel for $f" error "no proper \$pkgrel for $f"
rc=1 rc=1
@ -124,6 +122,15 @@ if [ $# -eq 0 ]; then
exit 2 exit 2
fi 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 do_verify "$@" || exit 1
$cmd "$@" $cmd "$@"

View File

@ -30,6 +30,19 @@ aports_buildscript() {
fi 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 # output functions
case $prog in case $prog in