From baad9999d45fa6d0bef8747b8fc6527e49fe56f2 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 6 Apr 2016 21:43:35 +0200 Subject: Option zum Nichtabbrechen bei makepkg-Fehler --- archPackagesUpdate | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/archPackagesUpdate b/archPackagesUpdate index 9e53dddd5..57d70f020 100755 --- a/archPackagesUpdate +++ b/archPackagesUpdate @@ -11,6 +11,7 @@ pkgSrcDir="$(dirname $(readlink -f -n "$0"))" force=false upload=true updateMe=true +abortOnMakepkgError=true # print help screen usage() @@ -19,16 +20,17 @@ usage() >&2 echo 'Skript zum Updaten der selbsterstellten Archlinux-Pakete' >&2 echo '' >&2 echo 'Verwendung:' - >&2 echo ' '"$0"' [ -f|--force ] [ --no-upload ] [ --no-selfUpdate ]' - >&2 echo ' -f|--force: rebuild packages even if they look up to date' - >&2 echo ' --no-upload: do not upload built packages from rechenknecht to jeti100' - >&2 echo ' --no-selfUpdate: do not update this script from git' + >&2 echo ' '"$0"' [ -f|--force ] [ --no-upload ] [ --no-selfUpdate ] [ --no-abortOnMakepkgError ]' + >&2 echo ' -f|--force: rebuild packages even if they look up to date' + >&2 echo ' --no-upload: do not upload built packages from rechenknecht to jeti100' + >&2 echo ' --no-selfUpdate: do not update this script from git' + >&2 echo ' --no-abortOnMakepkgError: do not abort when makepkg returns non-zero' >&2 echo '' exit 1 } # parse arguments -eval set -- "$(getopt -o f --long force,no-upload,no-selfUpdate -n "$(basename "$0")" -- "$@" || echo "usage")" +eval set -- "$(getopt -o f --long force,no-upload,no-selfUpdate,no-abortOnMakepkgError -n "$(basename "$0")" -- "$@" || echo "usage")" while true do @@ -45,6 +47,10 @@ do updateMe=false shift ;; + --no-abortOnMakepkgError) + abortOnMakepkgError=false + shift + ;; --) shift break @@ -127,6 +133,7 @@ done if ${aufRechenknecht} then sudo pacman -Syy + err=0 # build packages for ((i=0; i<${#pakete[@]}; i++)) @@ -142,14 +149,18 @@ then then # 32-bit is built in chroot echo 'cd "'"${tmpDir}/${paket}"'" && makepkg -fcsr --noconfirm && exit' | \ - chrootUnpriv || exit $? + chrootUnpriv + tmpErr=$? else # everything else is built directly - makepkg -fcsr --noconfirm || exit $? + makepkg -fcsr --noconfirm + tmpErr=$? fi + ${abortOnMakepkgError} && [ ${tmpErr} -ne 0 ] && exit ${tmpErr} + [ ${tmpErr} -gt ${err} ] && err=${tmpErr} # upload packages - if ${upload} + if ${upload} && [ ${tmpErr} -eq 0 ] then scp ${tmpDir}/${paket}/${paket}-${vers}-${arch}.pkg.tar.xz paule@127.0.0.1:${pkgDir}/${arch}/ [ "${arch}" == "any" ] && ssh paule@127.0.0.1 '\ @@ -165,6 +176,8 @@ then fi done + [ ${err} -ne 0 ] && exit ${err} + # update packagedb if ${upload} then -- cgit v1.2.3-54-g00ecf