uscrontab: ajout des options -@, -H, -M

This commit is contained in:
Jephté Clain 2017-09-21 01:20:56 +04:00
parent 52e838e383
commit a66c0c231f
1 changed files with 31 additions and 4 deletions

View File

@ -286,6 +286,14 @@ OPTIONS AVANCEES
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.
-@, --hm H[:M]
-H, --h00
-M, --h30
Options pour simplifier l'utilisation de --force-ctnow. Supposons que
--show-ctnow affiche 'Y X day mon dow', alors:
-@ H:M | est équivalent à | --force-ctnow 'M H day mon dow'
-H | '' | --force-ctnow '0 X day mon dow'
-M | '' | --force-ctnow '30 X day mon dow'
-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
@ -345,6 +353,7 @@ lockfile=auto
lockdelay=
fake=
continuous=
force_ctnow=
pause=
force=
parse_opts "${PRETTYOPTS[@]}" \
@ -367,6 +376,9 @@ parse_opts "${PRETTYOPTS[@]}" \
-k:,--stop: USCRONTAB_STOPEC= \
--show-ctnow action=show-ctnow \
--force-ctnow: __CTRESOLVE_CTNOW= \
-@:,--hm: force_ctnow= \
-H,--h00 force_ctnow=h00 \
-M,--h30 force_ctnow=h30 \
-G,--any-ctnow __CTRESOLVE_CTNOW="**ANY**" \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
@ -436,10 +448,6 @@ elif [ "$action" == "remove" ]; then
exit 0
elif [ "$action" == "list" ]; then
if check_pause "$pausefile" "$now"; then
ewarn "En pause. Réactiver avec $scriptname -Y"
fi
if [ -n "$uscrontab" ]; then
uscrontab="$(abspath "$uscrontab")"
array_from_lines ctfiles "$(crontab -l 2>/dev/null | awkrun script="$script" uscrontab="$uscrontab" '$6 == script && $7 == uscrontab { print $7 }')"
@ -472,6 +480,10 @@ elif [ "$action" == "list" ]; then
etitle "$(ppath "$ctfile")" \
cat "$ctfile"
done
if check_pause "$pausefile" "$now"; then
ewarn "En pause. Réactiver avec $scriptname -Y"
fi
exit $r
elif [ "$action" == "show-ctnow" ]; then
@ -604,6 +616,21 @@ elif [ "$action" == "run" ]; then
die "$*"
}
if [ -n "$force_ctnow" ]; then
ctnow=($(ctnow "$now"))
case "$force_ctnow" in
h00) ctnow[0]=0;;
h30) ctnow[0]=30;;
*)
force_ctnow="${force_ctnow//./:}" # autoriser H.M en plus de H:M
splitpair "$force_ctnow" h m
ctnow[0]="${m:-0}"
ctnow[1]="$h"
;;
esac
__CTRESOLVE_CTNOW="${ctnow[*]}"
fi
__ctscript="$(ctresolve <"$uscrontab")"
ec=0
edebug "$__ctscript"