X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=config%2Fdebian%2Fcronscript;h=ec5975d06a75c509d5aa6792ced165d28149a584;hb=9914190d8f003e8bbf8a0504a954c25600516299;hp=fec8f93e14236632e9e27efed674674f16157220;hpb=9639afdb34ea7c5fdaf62e05a78ca0aab288f6de;p=dak.git diff --git a/config/debian/cronscript b/config/debian/cronscript index fec8f93e..ec5975d0 100755 --- a/config/debian/cronscript +++ b/config/debian/cronscript @@ -27,6 +27,9 @@ # exit on errors set -e +# A pipeline's return status is the value of the last (rightmost) +# command to exit with a non-zero status, or zero if all commands exit +# successfully. set -o pipefail # make sure to only use defined variables set -u @@ -36,16 +39,18 @@ set -u set -E # And use one locale, no matter what the caller has set -export LANG=C -export LC_ALL=C +export LANG=C.UTF-8 +export LC_ALL=C.UTF-8 -ARG=${1:-"meh"} +# One arg please +declare -lr ARG=${1:-"meh"} # set DEBUG if you want to see a little more logs (needs to be used more) DEBUG=${DEBUG:-0} -# While this check can be done in the following case, some assumptions -# down there are easier if we sorted out calls without an arg before. +# This doesn't catch calling us with an unknown argument, but it +# catches missing args and saves a good bunch of processing time +# (reading the scriptvars later is slow) if [[ ${ARG} == meh ]]; then cat - < "$logdir/after${PROGRAM}.log" 2>&1 -case ${ARG,,} in +case ${ARG} in unchecked) ;; dinstall) @@ -234,5 +236,9 @@ esac # our stage files, so the next dinstall run will do it all again. rm -f ${stagedir}/* bzip2 -9 ${LOGFILE} + +# Logfile should be gone, remove the symlink +[[ -L ${logdir}/${PROGRAM} ]] && [[ ! -f ${logdir}/${PROGRAM} ]] && rm -f ${logdir}/${PROGRAM} || log "Logfile still exists or symlink gone already? Something fishy going on" + # FIXME: Mail the log when its non-empty [[ -s "${logdir}/after${PROGRAM}.log" ]] || rm "${logdir}/after${PROGRAM}.log"