ajout de trace() et trace_error()

This commit is contained in:
Jephté Clain 2014-05-27 16:03:30 +04:00
parent ba7f2d5886
commit 8a320dbba3
2 changed files with 29 additions and 1 deletions

View File

@ -1 +1 @@
39 40

View File

@ -3534,6 +3534,34 @@ function edebug() {
# Afficher un message de debug # Afficher un message de debug
show_debug || return; eflush; __edebug "$*" 1>&2 show_debug || return; eflush; __edebug "$*" 1>&2
} }
function trace() {
# Afficher la commande $1..@, la lancer, puis afficher son code d'erreur si une
# erreur se produit
local r cmd="$(quoted_args "$@")"
show_info && { eflush; __eecho "\$ $cmd" 1>&2; }
"$@"; r=$?
if [ $r -ne 0 ]; then
if show_info; then
eflush; __eecho "^ [EC #$r]" 1>&2
elif show_error; then
eflush; __eecho "^ $cmd [EC #$r]" 1>&2;
fi
fi
return $r
}
function trace_error() {
# Lancer la commande $1..@, puis afficher son code d'erreur si une erreur se
# produit. La différence avec trace() est que la commande n'est affichée que si
# une erreur se produit.
local r
"$@"; r=$?
if [ $r -ne 0 ]; then
local cmd="$(quoted_args "$@")"
show_error && { eflush; __eecho "^ $cmd [EC #$r]" 1>&2; }
fi
return $r
}
function etitle() { function etitle() {
# Afficher le titre $1, qui est le début éventuel d'une section. Les section # Afficher le titre $1, qui est le début éventuel d'une section. Les section
# imbriquées sont affichées indentées. La section n'est pas terminée, et il faut # imbriquées sont affichées indentées. La section n'est pas terminée, et il faut