From d0e15dd5b60e76e30f42f0f9061fcce9f5a6d5a3 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 22 Feb 2013 09:03:13 +0000 Subject: [PATCH] buildrepo: parse APKBUILDs in subshell so we dont leak functions like 'build' and other variables. --- buildrepo.in | 22 ++++++++++++++-------- 1 file 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 -- 1.8.1.3