diff --git a/bash/src/base.output.sh b/bash/src/base.output.sh index f86e461..8002d49 100644 --- a/bash/src/base.output.sh +++ b/bash/src/base.output.sh @@ -150,6 +150,33 @@ function elogto() { fi } +export NULIB_QUIETLOG +export NULIB__TMPLOG +function quiet_unless() { +# N'afficher la sortie de la commande $@ que si on est en mode DEBUG ou si se +# termine en erreur + local r + [ -z "$NULIB__TMPLOG" ] && ac_set_tmpfile NULIB__TMPLOG + "$@" >&"$NULIB__TMPLOG"; r=$? + [ -n "$NULIB_QUIETLOG" ] && cat "$NULIB__TMPLOG" >>"$NULIB_QUIETLOG" + [ $r -ne 0 -o -n "$NULIB_DEBUG" ] && cat "$NULIB__TMPLOG" + return $r +} +function quiet_logto() { +# Si quiet_unless est utilisé, sauvegarder quand même la sortie dans le fichier +# $1. Utiliser l'option -a pour ajouter au fichier au lieu de l'écraser + local append + if [ "$1" == -a ]; then + shift + append=1 + fi + NULIB_QUIETLOG="$1" + [ -n "$NULIB_QUIETLOG" ] || return + if [ -z "$append" ]; then + >"$NULIB_QUIETLOG" + fi +} + # variables utilisées pour l'affichage indenté des messages et des titres # NULIB__ESTACK est la liste des invocations de 'ebegin' et 'etitle' en cours # NULIB__TLEVEL est l'indentation à appliquer avant d'afficher le message