do not use splitfuncs variable

the split function name is extraced from the subpackage name in subpackages
variable in one of the following formats:

 1. subpackage:func

    The ':' serves as a separator. subpackage is first part, function second

 2. subpackage-func

    Without ':' separator, the subpackage is the entire string. In the
    example above, the package name is 'subpackage-func'.

    Function is extracted from the text after last '-'.

 3. subpackage

    Without either ':' and '-' the function name will be the subpackage name
    itself.
This commit is contained in:
Natanael Copa 2008-11-07 07:43:31 +00:00
parent fc3d67b16f
commit 56741bede2
1 changed files with 17 additions and 13 deletions

30
abuild
View File

@ -59,10 +59,6 @@ sanitycheck() {
die "Number of md5sums does not correspond to number of sources"
fi
if [ "$(echo $subpackages | wc -w)" -ne "$(echo $splitfuncs | wc -w)" ]; then
die "Number of subpackages does not correspond to number of splitfuncs"
fi
# common spelling errors
[ -n "$depend" ] && die "APKBUILD contains 'depend'. It should be depends"
[ -n "$makedepend" ] && die "APKBUILD contains 'makedepend'. It should be makedepends"
@ -145,8 +141,8 @@ clean() {
rm -rf "$srcdir"
rm -rf "$pkgdir"
local i
for i in $splitfuncs; do
rm -rf "$pkgdir-$i"
for i in $subpackages; do
rm -rf "$pkgdir-$(get_split_func $i)"
done
}
@ -180,17 +176,26 @@ build() {
die "No build() function found in $APKBUILD"
}
get_split_func() {
# get the 'func' from "sub-pkg:func"
local func=${1##*:}
# get 'func' from "sub-pkg-func" if there was no :func
[ "$func" = "$1" ] && func=${func##*-}
echo $func
}
subpkg() {
if [ -z "$splitfuncs" ] && [ -z "$subpackages" ]; then
if [ -z "$subpackages" ]; then
return 0
fi
local i
cd "$startdir"
set $splitfuncs
for i in $subpackages; do
subpkgdir="$startdir/pkg-$1" subpkgname="$i" $0 $1 package \
|| return 1
shift
local func=$(get_split_func $i)
# call abuild recursively, setting subpkg{dir,name}
subpkgdir="$startdir/pkg-$func" subpkgname="$i" \
$0 $func package || return 1
done
}
@ -387,9 +392,8 @@ shift $(( $OPTIND - 1 ))
[ -f "$APKBUILD" ] || die "Could not find $APKBUILD (PWD=$PWD)"
. "$APKBUILD"
# If we are handling a sub package then reset splitfuncs and subpackages
# If we are handling a sub package then reset subpackages
if [ -n "$subpkgname" ]; then
splitfuncs=
subpackages=
fi