From 38c8feda221cb725167cd424f105d126c6e8e702 Mon Sep 17 00:00:00 2001 From: Joerg Jaspert Date: Fri, 1 Jan 2016 10:22:32 +0100 Subject: [PATCH] There can be only one Ensure that only one copy of a given crontype can run. --- config/debian/cronscript | 46 +++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/config/debian/cronscript b/config/debian/cronscript index e77e082d..3f3dd52d 100755 --- a/config/debian/cronscript +++ b/config/debian/cronscript @@ -38,21 +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.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}" + +# 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} -# 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 - <