Si un processus prend plus de temps que REPORTTIME, zsh imprime l'heure à laquelle il se termine. Existe-t-il un moyen de lui faire exécuter une commande personnalisée en plus de celle-ci (j'aimerais utiliser notify send pour m'informer de la fin de l'exécution du processus) ?
Réponse
Trop de publicités?
smoku
Points
61
Je viens de penser la même chose. J'ai fait une recherche rapide sur Google et j'ai trouvé こん ; je l'ai un peu adapté. Mettez ça dans votre zshrc :
if [[ -x `which notify-send` ]]; then
notify-preexec-hook() {
zsh_notifier_cmd="$1"
zsh_notifier_time="`date +%s`"
}
notify-precmd-hook() {
local time_taken
if [[ "${zsh_notifier_cmd}" != "" ]]; then
time_taken=$(( `date +%s` - ${zsh_notifier_time} ))
if (( $time_taken > $REPORTTIME )); then
notify-send "task finished" \
"'$zsh_notifier_cmd' exited after $time_taken seconds"
fi
fi
zsh_notifier_cmd=
}
fi
[[ -z $preexec_functions ]] && preexec_functions=()
preexec_functions=($preexec_functions notify-preexec-hook)
[[ -z $precmd_functions ]] && precmd_functions=()
precmd_functions=($precmd_functions notify-precmd-hook)
J'en suis plutôt satisfait ! :)