diff --git a/abuild.in b/abuild.in index d3e4b02..ee36517 100644 --- a/abuild.in +++ b/abuild.in @@ -128,7 +128,7 @@ default_sanitycheck() { # check so no package names starts with - for i in $pkgname $subpackages; do case $i in - -*) die "${i%:*} is not a valid package name";; + -*) die "${i%%:*} is not a valid package name";; esac done @@ -444,7 +444,7 @@ cleancache() { listpkgnames() { local i for i in $pkgname $subpackages; do - echo ${i%:*} + echo ${i%%:*} done for i in $linguas; do echo $pkgname-lang-$i @@ -456,7 +456,7 @@ cleanpkg() { getpkgver || return 1 msg "Cleaning built packages..." for i in $(listpkgnames); do - local p="${i%:*}-$pkgver-r$pkgrel" + local p="${i%%:*}-$pkgver-r$pkgrel" rm -f "$PKGDEST/$p.apk" "$PKGDEST/$p.src.tar.gz" \ "$abuildrepo"/$p.apk "$abuildrepo"/*/$p.apk done @@ -470,7 +470,7 @@ cleanoldpkg() { getpkgver || return 1 msg "Cleaning all packages except $pkgver-r$pkgrel..." for i in $(listpkgnames); do - local pn=${i%:*} + local pn=${i%%:*} for j in "$PKGDEST"/$pn-[0-9]*.apk ; do [ "$j" = "$PKGDEST/$pn-$pkgver-r$pkgrel.apk" ] \ && continue @@ -576,12 +576,15 @@ targz() { } 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 + # get the 'func' from "sub-pkg:func:arch" + local _splitarch=${1#*:} + [ "$_splitarch" = "$1" ] && _splitarch="" + local _split=${_splitarch%:*} + if [ -z "$_split" ]; then + local _name=${1%%:*} + _split="${_name##*-}" + fi + echo $_split } postcheck() { @@ -685,7 +688,7 @@ prepare_subpackages() { local func=$(get_split_func $i) # call abuild recursively, setting subpkg{dir,name} msg "Running split function $func..." - local dir="$pkgbasedir/${i%:*}" name="${i%:*}" + local dir="$pkgbasedir/${i%%:*}" name="${i%%:*}" ( subpkgdir="$dir" subpkgname="$name" \ $0 pre_split $func prepare_package \ && postcheck "$dir" "$name" ) || return 1 @@ -1652,7 +1655,7 @@ apk_up2date() { local i s cd "$startdir" for i in $pkgname $subpackages; do - [ -f "$PKGDEST/${i%:*}-$pkgver-r$pkgrel.apk" ] || return 1 + [ -f "$PKGDEST/${i%%:*}-$pkgver-r$pkgrel.apk" ] || return 1 done [ -n "$keep" ] && return 0 @@ -1674,7 +1677,7 @@ abuildindex_up2date() { local i getpkgver || return 1 local dir="$abuildrepo"/$CARCH - local apk="${pkgname%:*}-$pkgver-r$pkgrel.apk" + local apk="${pkgname%%:*}-$pkgver-r$pkgrel.apk" local idx="$dir"/APKINDEX.tar.gz local file="$dir"/$apk @@ -1959,7 +1962,7 @@ source_has() { subpackages_has() { local i for i in $subpackages; do - [ "$1" = "${i%:*}" ] && return 0 + [ "$1" = "${i%%:*}" ] && return 0 done return 1 } @@ -1967,7 +1970,8 @@ subpackages_has() { subpackage_types_has() { local i for i in $subpackages; do - [ "$1" = "${i##*-}" ] && return 0 + local _name="${i%%:*}" + [ "$1" = "${_name##*-}" ] && return 0 done return 1 }