diff --git a/CHANGES.txt b/CHANGES.txt index 41dadf4..872247e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,10 @@ +## Version 2.13.0 du 01/09/2015-15:44 + +8d2e386 uscrontab: permettre d'ignorer le code d'erreur pour une commande planifiée +aa989ef Intégration de la branche uinst +58d9f16 uinst -y pose toujours la question si le répertoire est calculé automatiquement +594fd4e activer l'autocomplétion pour uinst -h + ## Version 2.12.1 du 24/08/2015-16:12 e356c2b bug avec le calcul du système diff --git a/VERSION.txt b/VERSION.txt index 3cf561c..fb2c076 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -2.12.1 +2.13.0 diff --git a/lib/completion.d/nutools b/lib/completion.d/nutools index f8645e7..79494ac 100644 --- a/lib/completion.d/nutools +++ b/lib/completion.d/nutools @@ -7,7 +7,7 @@ function __nutools_host_completion() { _known_hosts_real "$cur" fi } -complete -F __nutools_host_completion -o default ruinst runs rruns +complete -F __nutools_host_completion -o default uinst ruinst runs rruns if __bash_completion_module_enabled ssh; then shopt -u hostcomplete diff --git a/lib/ulib/uinst b/lib/ulib/uinst index 7a9433c..2bfdd5a 100644 --- a/lib/ulib/uinst +++ b/lib/ulib/uinst @@ -464,7 +464,7 @@ Impossible de déterminer automatiquement le répertoire à installer Essayez avec 'uinst -C'" return 1 } - ask_yesno "Le répertoire '$(ppath "$srcdir")' a été calculé automatiquement. Voulez-vous le déployer?" X || return 1 + ask_yesno -y "Le répertoire '$(ppath "$srcdir")' a été calculé automatiquement. Voulez-vous le déployer?" O || return 1 UINST_ORIGSRC="$srcdir" fi diff --git a/uscrontab b/uscrontab index 8f89b0c..05cfe5a 100755 --- a/uscrontab +++ b/uscrontab @@ -95,6 +95,9 @@ Les lignes commençant par # sont des commentaires et sont ignorées \$source path/to/file + Le code d'erreur de ces commandes est ignoré, contrairement à ce qui se + passe pour les commandes qui font l'objet d'une planification. + == Planification de commandes == Les autres lignes doivent être au format d'une ligne de crontab: @@ -134,6 +137,14 @@ Les lignes commençant par # sont des commentaires et sont ignorées 5 1 * * * command1 command2 + Par défaut, le script s'arrête à la première commande planifiée qui retourne + avec un code d'erreur. Il est possible d'ignorer le code d'erreur d'une + commande avec nostop, e.g: + + 0 * * * * nostop command + + Cf aussi l'option --continuous pour modifier le comportement par défaut + == Fonctions disponibles == La fonction check_pidfile() est disponible, et permet de vérifier qu'une @@ -241,9 +252,12 @@ OPTIONS AVANCEES Changer le nombre d'heures pendant lesquelles on autorise le script a verrouiller l'exécution avant d'afficher un avertissement. -c, --continuous - Par défaut, ce script s'arrête à la première commande qui retourne avec - une code d'erreur. Avec cette option, ce script ne s'arrête jamais, bien - qu'il retourne toujours un code d'erreur si une erreur s'est produite. + Par défaut, ce script s'arrête à la première commande planifiée qui + retourne avec un code d'erreur. Notez que les codes d'erreur des + commandes sans planification sont toujours ignorés. Avec cette option, + ce script ne s'arrête jamais, bien qu'il retourne toujours un code + d'erreur si une erreur s'est produite. Il est possible d'ignorer le + code d'erreur pour une commande en particulier avec le préfixe nostop -k, --stopec EXITCODE[=101] Spécifier un code d'erreur spécial qui arrête ce script sans erreur, ou '' pour désactiver cette fonctionnalité. Ceci permet en début de script @@ -482,6 +496,15 @@ elif [ "$action" == "run" ]; then } function __ctexec() { local ec=0 + + local cmd="${1%% *}" + if [ "$cmd" == nostop ]; then + cmd="${1#nostop }" + shift + set -- "$cmd" "$@" + local continuous=1 + fi + if [ -n "$fake" ]; then echo "$*" else