X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=config%2Fdebian%2Fcronscript;h=3f3dd52dbbd3184b26a2c06da74b436886206d3c;hb=38c8feda221cb725167cd424f105d126c6e8e702;hp=ffaf977ea8557c344c2d3cb26f0b69ca21aa2079;hpb=e65fe609400677be4ee3429e7251184b2fbc178e;p=dak.git diff --git a/config/debian/cronscript b/config/debian/cronscript index ffaf977e..3f3dd52d 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 @@ -35,15 +38,42 @@ set -u # the important part here) set -E +# The extglob shell option is enabled using the shopt builtin, several +# extended pattern matching operators are recognized. We use it for +# the POSSIBLEARGS and the first case ${ARGS} matching +shopt -s extglob + # And use one locale, no matter what the caller has set -export LANG=C -export LC_ALL=C - -ARG=${1:-"meh"} -# 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. -if [[ ${ARG} == meh ]]; then - cat - <> "$LOGFILE" 2>&1 @@ -209,7 +228,7 @@ log "Cron script successful, all done" # and ensure its no longer used exec > "$logdir/after${PROGRAM}.log" 2>&1 -case ${ARG,,} in +case ${ARG} in unchecked) ;; dinstall) @@ -225,11 +244,17 @@ case ${ARG,,} in ;; monthly) ;; + yearly) + ;; esac # Now, at the very (successful) end of this run, make sure we remove # 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"