#!/bin/bash preCmds=('hostname') cmds=() postCmds=('sync') if which check-kernel >/dev/null 2>&1; then postCmds+=('check-kernel -r') fi . #ETCDIR#/update-me.conf if "${hasSudo}"; then for ((i=0; i<${postCmds[@]}; i++)); do if [ "${postCmd[${i}]}" = 'check-kernel -r' ]; then postCmd[${i}]='sudo check-kernel -r'; fi done fi if [ ! "$(whoami)" == "root" ] then if ! "${hasSudo}" then hostname err=1 maxCount=3 while [ ${err} -eq 1 ] && [ ${maxCount} -gt 0 ] do su -c "$(readlink -f "$0") || exit 2" err=$? maxCount=$[${maxCount} - 1] done exit ${err} fi pre='sudo' else pre='' fi if [ ${#cmds[@]} -eq 0 ] then if [ -d '#ETCDIR#/pacman.d' ] then cmds=('pacman -Syu' 'pacdiff') elif [ -d '#ETCDIR#/ports' ] then cmds=('ports -u' 'prt-get sysup' 'rejmerge' 'revdep') elif [ -d '#ETCDIR#/apt' ] then cmds=('apt-get update' 'apt-get upgrade' 'apt-get dist-upgrade' 'apt-get autoremove') else >&2 echo 'Unknown distribution!' exit 1 fi fi for cmd in "${preCmds[@]}" do ${cmd} err=$? if [ ${err} -ne 0 ] then >&2 echo 'Fehler' read s exit ${err} fi done for cmd in "${cmds[@]}" do ${pre} ${cmd} err=$? if [ ${err} -ne 0 ] then >&2 echo 'Fehler' read s exit ${err} fi done for cmd in "${postCmds[@]}" do ${cmd} err=$? if [ ${err} -ne 0 ] then >&2 echo 'Fehler' read s exit ${err} fi done >&2 echo 'Erfolg' read s exit 0