diff --git a/uscrontab b/uscrontab index e0ca551..3d302f6 100755 --- a/uscrontab +++ b/uscrontab @@ -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"