summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2017-08-13 17:28:30 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2017-09-19 12:02:57 +0000
commitf1faef7868a0f31f516889f56b69bf59cddc14d1 (patch)
treea16fb0d3dc00bb075eb9cda1e5e83c3781b3eec5
parent2b709f7e201cc1d6d5217321d0527ba76f931eaa (diff)
downloadabuild-f1faef7868a0f31f516889f56b69bf59cddc14d1.tar.gz
abuild-f1faef7868a0f31f516889f56b69bf59cddc14d1.tar.bz2
abuild-f1faef7868a0f31f516889f56b69bf59cddc14d1.tar.xz
abuild-f1faef7868a0f31f516889f56b69bf59cddc14d1.zip
abuild: ensure a package has deps before printing them
After the first dep is printed, `shift` is called to avoid the special case where the first dep cannot have a comma prepended. However, if there are no deps for a package (seen early on in the aports main repo in acf-jquery), $# is 0. POSIX specifies that `shift` has two options when the shift operand (1) is greater than $#: - if non-interactive, it can exit the shell - if it does not exit the shell, it must return a non-zero exit code Since we run the shell with -e, the second case folds in to the first. BusyBox ash does not implement this behaviour, but bash does when called as /bin/sh or when the `posix` shopt is set.
-rw-r--r--abuild.in4
1 files changed, 4 insertions, 0 deletions
diff --git a/abuild.in b/abuild.in
index 2ec401a..7f31dbe 100644
--- a/abuild.in
+++ b/abuild.in
@@ -1838,6 +1838,10 @@ parse_aports_makedepends() {
for j in $pkgname $subpackages; do
echo "o ${j%%:*} $dir"
set -- $deps
+ if [ $# -eq 0 ]; then
+ echo "d ${j%%:*}"
+ continue
+ fi
echo -n "d ${j%%:*} $1"
shift
while [ $# -gt 0 ]; do