X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=config%2Fdebian%2Fcronscript;h=3f3dd52dbbd3184b26a2c06da74b436886206d3c;hb=38c8feda221cb725167cd424f105d126c6e8e702;hp=fec8f93e14236632e9e27efed674674f16157220;hpb=9639afdb34ea7c5fdaf62e05a78ca0aab288f6de;p=dak.git diff --git a/config/debian/cronscript b/config/debian/cronscript index fec8f93e..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,19 +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 +export LANG=C.UTF-8 +export LC_ALL=C.UTF-8 + +# import the general variable set. +export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars +. $SCRIPTVARS + +# One arg please +declare -lr ARG=${1:-"meh"} + +# program name is the (lower cased) first argument. +PROGRAM="${ARG}" -ARG=${1:-"meh"} +# And the following types of cronscripts exists +declare -lr POSSIBLEARGS='+(unchecked|dinstall|hourly|daily|weekly|monthly|yearly)' # 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. -if [[ ${ARG} == meh ]]; then - cat - < "$logdir/after${PROGRAM}.log" 2>&1 -case ${ARG,,} in +case ${ARG} in unchecked) ;; dinstall) @@ -228,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"