summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-12-16 09:49:14 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-12-16 09:50:16 +0000
commitc7d94591a55d1d05a45281a849cd57d8d6c7d9d6 (patch)
tree3363463d5d522ceb78e75a4bee1c9a2e8cbea9f9
parent212ba2638993b61971e5fbb223a80187b6478618 (diff)
downloadabuild-c7d94591a55d1d05a45281a849cd57d8d6c7d9d6.tar.bz2
abuild-c7d94591a55d1d05a45281a849cd57d8d6c7d9d6.tar.xz
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.
-rwxr-xr-xbuildrepo.in12
1 files 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";;