summaryrefslogtreecommitdiff
path: root/buildrepo.in
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-02-22 09:03:13 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-02-22 09:03:13 +0000
commitd0e15dd5b60e76e30f42f0f9061fcce9f5a6d5a3 (patch)
tree38c75151493ff1a17ae383c945f7849eafd0b78d /buildrepo.in
parent447974ea29d5e22f982fd4621e50760e7186277a (diff)
downloadabuild-d0e15dd5b60e76e30f42f0f9061fcce9f5a6d5a3.tar.gz
abuild-d0e15dd5b60e76e30f42f0f9061fcce9f5a6d5a3.tar.bz2
abuild-d0e15dd5b60e76e30f42f0f9061fcce9f5a6d5a3.tar.xz
abuild-d0e15dd5b60e76e30f42f0f9061fcce9f5a6d5a3.zip
buildrepo: parse APKBUILDs in subshell
so we dont leak functions like 'build' and other variables.
Diffstat (limited to 'buildrepo.in')
-rwxr-xr-xbuildrepo.in22
1 files changed, 14 insertions, 8 deletions
diff --git a/buildrepo.in b/buildrepo.in
index f1a5749..23cc61e 100755
--- a/buildrepo.in
+++ b/buildrepo.in
@@ -46,9 +46,9 @@ all_exist() {
done
return 0
}
-
-build() {
- local repo="$1" i needbuild
+
+list_needbuild() {
+ local repo="$1" i=
cd "$aportsdir/$repo" || return 0
@@ -78,14 +78,20 @@ build() {
# try link or copy the files if they are in the ports dir
if all_exist $pkgs; then
- echo ">>> Copying " $pkgs
+ echo ">>> Copying " $pkgs >&2
cp -p -l $pkgs "$repodir/$repo/$CARCH"/ 2>/dev/null \
|| cp -p $pkgs "$repodir/$repo/$CARCH"/ \
- || needbuild="$needbuild $i"
+ || echo "$i"
else
- needbuild="$needbuild $i"
+ echo "$i"
fi
done
+}
+
+do_build() {
+ local repo="$1" i=
+ cd "$aportsdir/$repo" || return 0
+ local needbuild="$(list_needbuild $repo)"
# build the postponed packages if any
if [ -n "$needbuild" ]; then
@@ -146,9 +152,9 @@ shift $(($OPTIND - 1))
while [ $# -gt 0 ]; do
if [ -n "$logprefix" ]; then
- build $1 >$logprefix.$1.log 2>&1 || exit 1
+ do_build $1 >$logprefix.$1.log 2>&1 || exit 1
else
- build $1 || exit 1
+ do_build $1 || exit 1
fi
deprepo="$deprepo $1"
shift