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.
This commit is contained in:
Natanael Copa 2013-12-16 09:49:14 +00:00
parent 212ba26389
commit c7d94591a5
1 changed files with 9 additions and 3 deletions

View File

@ -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";;