uscrontab: support de l'option -G pour les tests

This commit is contained in:
Jephté Clain 2017-02-20 13:55:49 +04:00
parent e58ff74d83
commit b6b7fa94ca
2 changed files with 13 additions and 2 deletions

View File

@ -112,7 +112,9 @@ __CTRESOLVE_CTNOW=""
# eval "$(ctresolve <crontab)"
function ctresolve() {
local -a ctnow
if [ -n "$__CTRESOLVE_CTNOW" ]; then
if [ "$__CTRESOLVE_CTNOW" == "**ANY**" ]; then
ctnow=("$__CTRESOLVE_CTNOW")
elif [ -n "$__CTRESOLVE_CTNOW" ]; then
eval "ctnow=($__CTRESOLVE_CTNOW)"
else
eval "ctnow=($(ctnow))"
@ -153,6 +155,8 @@ function ctmatch_one(ctval, ref, parts, part, i, j, start, end, ste
return ok
}
function ctmatch_all(M, H, dom, mon, dow, refM, refH, refdom, refmon, refdow, Mok, Hok, domok, monok, dowok) {
if (refM == "**ANY**") return 1
gsub(/\*/, "0-59", M)
Mok = ctmatch_one(M, refM)

View File

@ -285,7 +285,13 @@ OPTIONS AVANCEES
Pour le développement ou des tests, forcer la valeur de l'heure de
référence. Il faut respecter le format, sinon les résultats ne sont pas
garantis. Le mieux est de reprendre le résultat de l'option --show-ctnow
en le modifiant un peu si nécessaire."
en le modifiant un peu si nécessaire.
-G, --any-ctnow
Pour le développement ou des tests, lancer toutes les commandes dans
l'ordre sans tenir compte de l'heure de référence. Cette commande ne
devrait pas être utilisée en temps normal, mais elle existe pour
simplifier les tests avec --show-ctnow + --force-ctnow dans les cas
simples."
}
function set_usercrontabs() {
@ -361,6 +367,7 @@ parse_opts "${PRETTYOPTS[@]}" \
-k:,--stop: USCRONTAB_STOPEC= \
--show-ctnow action=show-ctnow \
--force-ctnow: __CTRESOLVE_CTNOW= \
-G,--any-ctnow __CTRESOLVE_CTNOW="**ANY**" \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
uscrontab="$1"; shift