implémenter --show-ctnow, --force-ctnow et -r
This commit is contained in:
parent
d40ca86347
commit
acb281dac6
54
uscrontab
54
uscrontab
|
@ -207,7 +207,7 @@ OPTIONS
|
||||||
utilisé. Si name est vide ou vaut \$USER (soit $USER en l'occurence),
|
utilisé. Si name est vide ou vaut \$USER (soit $USER en l'occurence),
|
||||||
copier le fichier spécifié vers le chemin $USCRONTAB_USERFILE
|
copier le fichier spécifié vers le chemin $USCRONTAB_USERFILE
|
||||||
Sinon, copier le fichier spécifié vers $USCRONTAB_USERDIR/name
|
Sinon, copier le fichier spécifié vers $USCRONTAB_USERDIR/name
|
||||||
-r, --remove XXX non implémenté
|
-r, --remove
|
||||||
Supprimer le script uscrontab spécifié. L'argument doit être le nom du
|
Supprimer le script uscrontab spécifié. L'argument doit être le nom du
|
||||||
script à supprimer. Si l'argument n'est pas spécifié ou vaut \$USER
|
script à supprimer. Si l'argument n'est pas spécifié ou vaut \$USER
|
||||||
(soit $USER en l'occurence), supprimer le fichier $USCRONTAB_USERFILE
|
(soit $USER en l'occurence), supprimer le fichier $USCRONTAB_USERFILE
|
||||||
|
@ -223,11 +223,6 @@ OPTIONS
|
||||||
$USCRONTAB_USERDIR
|
$USCRONTAB_USERDIR
|
||||||
-n, --fake
|
-n, --fake
|
||||||
Afficher au lieu de les exécuter les commandes qui doivent être lancées
|
Afficher au lieu de les exécuter les commandes qui doivent être lancées
|
||||||
--show-ctnow XXX non implémenté
|
|
||||||
Afficher l'heure de référence au format crontab 'min hou day mon dow'
|
|
||||||
--force-ctnow 'min hou day mon dow' XXX non implémenté
|
|
||||||
Pour le développement, forcer la valeur de l'heure de référence. Il faut
|
|
||||||
respecter le format, sinon les résultats ne sont pas garantis.
|
|
||||||
|
|
||||||
OPTIONS AVANCEES
|
OPTIONS AVANCEES
|
||||||
--lock LOCKFILE
|
--lock LOCKFILE
|
||||||
|
@ -253,7 +248,16 @@ OPTIONS AVANCEES
|
||||||
de faire des tests par exemple sur l'environnement avant de lancer les
|
de faire des tests par exemple sur l'environnement avant de lancer les
|
||||||
scripts planifiés. Si l'environnement ne convient pas, il suffit au
|
scripts planifiés. Si l'environnement ne convient pas, il suffit au
|
||||||
script de contrôle de retourner le code d'erreur spécifique pour arrêter
|
script de contrôle de retourner le code d'erreur spécifique pour arrêter
|
||||||
le traitement."
|
le traitement.
|
||||||
|
--show-ctnow
|
||||||
|
Afficher l'heure de référence au format crontab 'min hou day mon dow'
|
||||||
|
Cette valeur peut être utilisée avec l'option --force-ctnow dans des
|
||||||
|
tests pour reproduire une condition spécifique.
|
||||||
|
--force-ctnow 'min hou day mon dow'
|
||||||
|
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."
|
||||||
}
|
}
|
||||||
|
|
||||||
function set_usercrontabs() {
|
function set_usercrontabs() {
|
||||||
|
@ -266,6 +270,18 @@ function set_usercrontabs() {
|
||||||
eval "${1:-usercrontabs}"'=("${_userfile[@]}" "${_userdir[@]}")'
|
eval "${1:-usercrontabs}"'=("${_userfile[@]}" "${_userdir[@]}")'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_usercrontab() {
|
||||||
|
# trouver le chemin correspondant au crontab $1. Si $1 n'est pas spécifié ou
|
||||||
|
# vaut $USER, afficher $USCRONTAB_USERFILE, sinon afficher $USCRONTAB_USERDIR/$1
|
||||||
|
local name="$1"
|
||||||
|
[ "$name" == "$USER" ] && name=
|
||||||
|
if [ -n "$name" ]; then
|
||||||
|
echo "$USCRONTAB_USERDIR/$name"
|
||||||
|
else
|
||||||
|
echo "$USCRONTAB_USERFILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
USCRONTAB_CTLINE="* * * * * $script"
|
USCRONTAB_CTLINE="* * * * * $script"
|
||||||
USCRONTAB_LOCKDELAY=8
|
USCRONTAB_LOCKDELAY=8
|
||||||
USCRONTAB_STOPEC=101
|
USCRONTAB_STOPEC=101
|
||||||
|
@ -283,14 +299,17 @@ parse_opts "${PRETTYOPTS[@]}" \
|
||||||
--help '$exit_with display_help' \
|
--help '$exit_with display_help' \
|
||||||
-A,--add,--install action=install \
|
-A,--add,--install action=install \
|
||||||
-R,--remove,--uninstall action=uninstall \
|
-R,--remove,--uninstall action=uninstall \
|
||||||
|
-e,--edit action=edit \
|
||||||
|
-a,--add action=add \
|
||||||
|
-r,--remove action=remove \
|
||||||
|
-l,--list action=list \
|
||||||
|
-n,--fake fake=1 \
|
||||||
--lock: lockfile= \
|
--lock: lockfile= \
|
||||||
--lockdelay: lockdelay= \
|
--lockdelay: lockdelay= \
|
||||||
-n,--fake fake=1 \
|
|
||||||
-c,--continuous continuous=1 \
|
-c,--continuous continuous=1 \
|
||||||
-k:,--stop: USCRONTAB_STOPEC= \
|
-k:,--stop: USCRONTAB_STOPEC= \
|
||||||
-l,--list action=list \
|
--show-ctnow action=show-ctnow \
|
||||||
-e,--edit action=edit \
|
--force-ctnow: __CTRESOLVE_CTNOW= \
|
||||||
-r,--remove action=remove \
|
|
||||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||||
|
|
||||||
crontab="$1"; shift
|
crontab="$1"; shift
|
||||||
|
@ -306,12 +325,15 @@ if [ "$action" == "edit" ]; then
|
||||||
touch "$crontab" || die
|
touch "$crontab" || die
|
||||||
chmod 640 "$crontab"
|
chmod 640 "$crontab"
|
||||||
fi
|
fi
|
||||||
"${EDITOR:-vi}" "$crontab"
|
"${EDITOR:-vi}" "$crontab" || die
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
elif [ "$action" == "add" ]; then
|
||||||
|
ewarn "XXX non implémenté"
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
elif [ "$action" == "remove" ]; then
|
elif [ "$action" == "remove" ]; then
|
||||||
[ -n "$crontab" ] && ewarn "$crontab: cet argument a été ignoré"
|
crontab="$(get_usercrontab "$crontab")"
|
||||||
crontab="$USCRONTAB_USERFILE"
|
|
||||||
if [ -f "$crontab" ]; then
|
if [ -f "$crontab" ]; then
|
||||||
ask_yesno "Voulez-vous supprimer le fichier $crontab?" C || die
|
ask_yesno "Voulez-vous supprimer le fichier $crontab?" C || die
|
||||||
enote "Suppression de $crontab"
|
enote "Suppression de $crontab"
|
||||||
|
@ -347,6 +369,10 @@ elif [ "$action" == "list" ]; then
|
||||||
cat "$ctfile"
|
cat "$ctfile"
|
||||||
done
|
done
|
||||||
exit $r
|
exit $r
|
||||||
|
|
||||||
|
elif [ "$action" == "show-ctnow" ]; then
|
||||||
|
ctnow
|
||||||
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -z "$crontab" -o -f "$crontab" ] || die "$crontab: fichier introuvable"
|
[ -z "$crontab" -o -f "$crontab" ] || die "$crontab: fichier introuvable"
|
||||||
|
|
Loading…
Reference in New Issue