possibilité de spécifier des variables

This commit is contained in:
Jephté Clain 2014-04-23 19:22:55 +04:00
parent 39d3c37912
commit f4278a7950
1 changed files with 16 additions and 6 deletions

View File

@ -6,7 +6,7 @@ function display_help() {
uecho "$scriptname: lancer une suite de commande en respectant une planification de type cron uecho "$scriptname: lancer une suite de commande en respectant une planification de type cron
USAGE USAGE
$scriptname [options] [/path/to/crontab] $scriptname [options] [/path/to/crontab] [var=value...]
$scriptname -e [/path/to/crontab] $scriptname -e [/path/to/crontab]
$scriptname -l $scriptname -l
@ -326,13 +326,11 @@ elif [ "$action" == "uninstall" ]; then
remove_from_crontab "$ctline" && estep "remove_from_crontab $ctline" remove_from_crontab "$ctline" && estep "remove_from_crontab $ctline"
elif [ "$action" == "run" ]; then elif [ "$action" == "run" ]; then
clean_crontab=
if [ -n "$crontab" ]; then if [ -n "$crontab" ]; then
default_lockfile="/var/run/$scriptname$crontab.lock" default_lockfile="/var/run/$scriptname$crontab.lock"
else else
set_usercrontabs usercrontabs set_usercrontabs usercrontabs
ac_set_tmpfile crontab ac_set_tmpfile crontab
clean_crontab=1
for usercrontab in "${usercrontabs[@]}"; do for usercrontab in "${usercrontabs[@]}"; do
echo "# $usercrontab" >>"$crontab" echo "# $usercrontab" >>"$crontab"
cat "$usercrontab" >>"$crontab" cat "$usercrontab" >>"$crontab"
@ -402,9 +400,10 @@ elif [ "$action" == "run" ]; then
function __cterror() { function __cterror() {
die "$*" die "$*"
} }
ctscript="$(ctresolve <"$crontab")"
__ctscript="$(ctresolve <"$crontab")"
ec=0 ec=0
edebug "$ctscript" edebug "$__ctscript"
( (
# tableau des fichiers de pid en cours. la conséquence est que ce n'est # tableau des fichiers de pid en cours. la conséquence est que ce n'est
# pas une erreur d'appeler à plusieurs reprises check_pidfile avec le # pas une erreur d'appeler à plusieurs reprises check_pidfile avec le
@ -446,10 +445,21 @@ puis supprimez le cas échéant le fichier $pidfile"
array_del __USCRONTAB_PIDFILES "$pidfile" array_del __USCRONTAB_PIDFILES "$pidfile"
fi fi
} }
__ac_forgetall __ac_forgetall
eval "$ctscript" # Si des variables sont spécifiées, les initialiser avant de lancer le
# script
for __var in "$@"; do
splitvar "$__var" __name __value
edebug "$__name=$__value"
set_var "$__name" "$__value"
done
eval "$__ctscript"
ac_cleanall ac_cleanall
); ec=$? ); ec=$?
ac_clean "$crontab"
ac_clean "$lockfile" ac_clean "$lockfile"
exit "$ec" exit "$ec"
fi fi