From c7d94591a55d1d05a45281a849cd57d8d6c7d9d6 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Mon, 16 Dec 2013 09:49:14 +0000 Subject: buildrepo: support for -k option for keep-going This option will make buildrepo continue build even if some package fails. It is an 'build what you can' option. --- buildrepo.in | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/buildrepo.in b/buildrepo.in index dcba9b6..0cf3a8f 100755 --- a/buildrepo.in +++ b/buildrepo.in @@ -26,6 +26,7 @@ usage() { echo " -d Set destination repository base dir to REPODIR instead of $repodir" echo " -h Show this help and exit" echo " -l Send build to logfile, prefixed by LOGPREFIX" + echo " -k Keep going, even if packages fails" echo " -p Purge obsolete packages from REPODIR after build" echo " -r Dependencies are found in DEPREPO" exit 1 @@ -85,7 +86,7 @@ list_needbuild() { cd "$aportsdir/$repo" || return 0 # first we try copy everything possible and find out which we need - # to rebuild. By doing this we might save us for rebuilding + # to rebuild. By doing this we might save us for rebuilding # needed when running 'abuild -R' for apkbuild in */APKBUILD; do [ -f "$aportsdir/$repo/$apkbuild" ] || continue @@ -131,11 +132,15 @@ do_build() { local needbuild="$(list_needbuild $repo)" export REPODEST="$repodir" + export ABUILD_BLACKLIST # build the postponed packages if any if [ -n "$needbuild" ]; then for i in $needbuild; do cd "$aportsdir/$repo"/${i%/*} || return 1 - abuild -k -R || return 1 + if ! abuild -k -R; then + [ -n "$keep_going" ] || return 1 + ABUILD_BLACKLIST="$ABUILD_BLACKLIST $i" + fi done fi @@ -174,11 +179,12 @@ do_build() { rm -f tmp.* } -while getopts "a:d:hl:pr:" opt; do +while getopts "a:d:hkl:pr:" opt; do case "$opt" in a) aportsdir=$OPTARG;; d) repodir=$OPTARG;; h) usage >&2;; + k) keep_going=1;; l) logprefix=$OPTARG;; p) dopurge=1;; r) deprepo="$deprepo $OPTARG";; -- cgit v1.2.3-60-g2f50