From 8a320dbba3d341ddb7e2db7ab8dfd6dfffccf72d Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Tue, 27 May 2014 16:03:30 +0400 Subject: [PATCH] ajout de trace() et trace_error() --- ulib/.ulib_version | 2 +- ulib/base | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/ulib/.ulib_version b/ulib/.ulib_version index a272009..425151f 100644 --- a/ulib/.ulib_version +++ b/ulib/.ulib_version @@ -1 +1 @@ -39 +40 diff --git a/ulib/base b/ulib/base index 388c0c7..f876d3b 100644 --- a/ulib/base +++ b/ulib/base @@ -3534,6 +3534,34 @@ function edebug() { # Afficher un message de debug 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() { # 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