modifs.mineures sans commentaires
This commit is contained in:
parent
4b60232dfb
commit
5988637a41
|
@ -0,0 +1,81 @@
|
||||||
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
|
function __esection() {
|
||||||
|
local -a lines
|
||||||
|
local lsep prefix="$(__edate)${NULIB__TLEVEL}"
|
||||||
|
local length="${COLUMNS:-80}"
|
||||||
|
setx lsep=__complete "$prefix" "$length" -
|
||||||
|
|
||||||
|
tooenc "$COULEUR_BLEUE$lsep$COULEUR_NORMALE"
|
||||||
|
[ -n "$*" ] || return 0
|
||||||
|
length=$((length - 1))
|
||||||
|
setx -a lines=echo "$1"
|
||||||
|
for line in "${lines[@]}"; do
|
||||||
|
setx line=__complete "$prefix- $line" "$length"
|
||||||
|
tooenc "$COULEUR_BLEUE$line-$COULEUR_NORMALE"
|
||||||
|
done
|
||||||
|
tooenc "$COULEUR_BLEUE$lsep$COULEUR_NORMALE"
|
||||||
|
}
|
||||||
|
function __etitle() {
|
||||||
|
local -a lines; local maxlen=0
|
||||||
|
local prefix="$(__edate)${NULIB__TLEVEL}"
|
||||||
|
|
||||||
|
setx -a lines=echo "$1"
|
||||||
|
for line in "${lines[@]}"; do
|
||||||
|
[ ${#line} -gt $maxlen ] && maxlen=${#line}
|
||||||
|
tooenc "${prefix}${COULEUR_BLEUE}T $line$COULEUR_NORMALE"
|
||||||
|
done
|
||||||
|
maxlen=$((maxlen + 2))
|
||||||
|
tooenc "${prefix}${COULEUR_BLEUE}T$(__complete "" $maxlen -)${COULEUR_NORMALE}"
|
||||||
|
}
|
||||||
|
function __edesc() {
|
||||||
|
local -a lines
|
||||||
|
local prefix="$(__edate)${NULIB__TLEVEL}"
|
||||||
|
|
||||||
|
setx -a lines=echo "$1"
|
||||||
|
for line in "${lines[@]}"; do
|
||||||
|
tooenc "${prefix}${COULEUR_BLEUE}>${COULEUR_NORMALE} $line"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
function __ebanner() {
|
||||||
|
local -a lines
|
||||||
|
local lsep prefix="$(__edate)${NULIB__TLEVEL}"
|
||||||
|
local length="${COLUMNS:-80}"
|
||||||
|
setx lsep=__complete "$prefix" "$length" =
|
||||||
|
|
||||||
|
tooenc "$COULEUR_ROUGE$lsep"
|
||||||
|
length=$((length - 1))
|
||||||
|
setx -a lines=echo "$1"
|
||||||
|
for line in "" "${lines[@]}" ""; do
|
||||||
|
setx line=__complete "$prefix= $line" "$length"
|
||||||
|
tooenc "$line="
|
||||||
|
done
|
||||||
|
tooenc "$lsep$COULEUR_NORMALE"
|
||||||
|
}
|
||||||
|
function __eimportant() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_ROUGE}!${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __eattention() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_JAUNE}*${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __eerror() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_ROUGE}E${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __ewarn() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_JAUNE}W${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __enote() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_VERTE}N${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __einfo() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_BLEUE}I${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __edebug() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_BLANCHE}D${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
|
||||||
|
function __estep() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_BLANCHE}.${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __estepe() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_ROUGE}.${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __estepw() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_JAUNE}.${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __estepn() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_VERTE}.${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __estepi() { tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_BLEUE}.${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __estep_() { tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_BLANCHE}.${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __estepe_() { tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_ROUGE}.${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __estepw_() { tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_JAUNE}.${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __estepn_() { tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_VERTE}.${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
function __estepi_() { tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_BLEUE}.${COULEUR_NORMALE} $(__indent "$1" " ")"; }
|
||||||
|
|
||||||
|
function __ebegin() { local p="." i=" "; tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_BLANCHE}.${COULEUR_NORMALE} $(__indent "$1" " "): "; }
|
||||||
|
function __edoto() { echo_ "."; }
|
||||||
|
function __edotw() { echo_ "${COULEUR_JAUNE}w${COULEUR_NORMALE}"; }
|
||||||
|
function __edotx() { echo_ "${COULEUR_ROUGE}x${COULEUR_NORMALE}"; }
|
||||||
|
function __edotp() { echo_ "${COULEUR_JAUNE}+${COULEUR_NORMALE}"; }
|
||||||
|
function __edotd() { tooenc "($1)"; }
|
||||||
|
function __eendo() { echo "${COULEUR_VERTE}[ok]${COULEUR_NORMALE}"; }
|
||||||
|
function __eendx() { echo "${COULEUR_ROUGE}[error]${COULEUR_NORMALE}"; }
|
|
@ -0,0 +1,70 @@
|
||||||
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
|
function __esection() {
|
||||||
|
local -a lines
|
||||||
|
local lsep prefix="$(__edate)${NULIB__TLEVEL}"
|
||||||
|
local length="${COLUMNS:-80}"
|
||||||
|
setx lsep=__complete "$prefix" "$length" -
|
||||||
|
|
||||||
|
tooenc "$lsep"
|
||||||
|
[ -n "$*" ] || return 0
|
||||||
|
length=$((length - 1))
|
||||||
|
setx -a lines=echo "$1"
|
||||||
|
for line in "${lines[@]}"; do
|
||||||
|
setx line=__complete "$prefix- $line" "$length"
|
||||||
|
tooenc "$line-"
|
||||||
|
done
|
||||||
|
tooenc "$lsep"
|
||||||
|
}
|
||||||
|
function __etitle() {
|
||||||
|
local p="TITLE: " i=" "
|
||||||
|
tooenc "$(__edate)${NULIB__TLEVEL}${p}$(__indent "$1" "$i")"
|
||||||
|
}
|
||||||
|
function __edesc() {
|
||||||
|
local p="DESC: " i=" "
|
||||||
|
tooenc "$(__edate)${NULIB__TLEVEL}${p}$(__indent "$1" "$i")"
|
||||||
|
}
|
||||||
|
function __ebanner() {
|
||||||
|
local -a lines
|
||||||
|
local lsep prefix="$(__edate)${NULIB__TLEVEL}"
|
||||||
|
local length="${COLUMNS:-80}"
|
||||||
|
setx lsep=__complete "$prefix" "$length" =
|
||||||
|
|
||||||
|
tooenc "$lsep"
|
||||||
|
length=$((length - 1))
|
||||||
|
setx -a lines=echo "$1"
|
||||||
|
for line in "" "${lines[@]}" ""; do
|
||||||
|
setx line=__complete "$prefix= $line" "$length"
|
||||||
|
tooenc "$line="
|
||||||
|
done
|
||||||
|
tooenc "$lsep"
|
||||||
|
}
|
||||||
|
function __eimportant() { tooenc "$(__edate)${NULIB__TLEVEL}IMPORTANT! $(__indent "$1" " ")"; }
|
||||||
|
function __eattention() { tooenc "$(__edate)${NULIB__TLEVEL}ATTENTION! $(__indent "$1" " ")"; }
|
||||||
|
function __eerror() { tooenc "$(__edate)${NULIB__TLEVEL}ERROR: $(__indent "$1" " ")"; }
|
||||||
|
function __ewarn() { tooenc "$(__edate)${NULIB__TLEVEL}WARNING: $(__indent "$1" " ")"; }
|
||||||
|
function __enote() { tooenc "$(__edate)${NULIB__TLEVEL}NOTE: $(__indent "$1" " ")"; }
|
||||||
|
function __einfo() { tooenc "$(__edate)${NULIB__TLEVEL}INFO: $(__indent "$1" " ")"; }
|
||||||
|
function __edebug() { tooenc "$(__edate)${NULIB__TLEVEL}DEBUG: $(__indent "$1" " ")"; }
|
||||||
|
function __eecho() { tooenc "$(__edate)${NULIB__TLEVEL}$(__indent "$1")"; }
|
||||||
|
function __eecho_() { tooenc_ "$(__edate)${NULIB__TLEVEL}$(__indent "$1")"; }
|
||||||
|
|
||||||
|
function __estep() { tooenc "$(__edate)${NULIB__TLEVEL}. $(__indent "$1" " ")"; }
|
||||||
|
function __estepe() { tooenc "$(__edate)${NULIB__TLEVEL}.E $(__indent "$1" " ")"; }
|
||||||
|
function __estepw() { tooenc "$(__edate)${NULIB__TLEVEL}.W $(__indent "$1" " ")"; }
|
||||||
|
function __estepn() { tooenc "$(__edate)${NULIB__TLEVEL}.N $(__indent "$1" " ")"; }
|
||||||
|
function __estepi() { tooenc "$(__edate)${NULIB__TLEVEL}.I $(__indent "$1" " ")"; }
|
||||||
|
function __estep_() { tooenc_ "$(__edate)${NULIB__TLEVEL}. $(__indent "$1" " ")"; }
|
||||||
|
function __estepe_() { tooenc_ "$(__edate)${NULIB__TLEVEL}.E $(__indent "$1" " ")"; }
|
||||||
|
function __estepw_() { tooenc_ "$(__edate)${NULIB__TLEVEL}.W $(__indent "$1" " ")"; }
|
||||||
|
function __estepn_() { tooenc_ "$(__edate)${NULIB__TLEVEL}.N $(__indent "$1" " ")"; }
|
||||||
|
function __estepi_() { tooenc_ "$(__edate)${NULIB__TLEVEL}.I $(__indent "$1" " ")"; }
|
||||||
|
|
||||||
|
function __ebegin() { tooenc_ "$(__edate)${NULIB__TLEVEL}. $(__indent "$1" " "): "; }
|
||||||
|
function __edoto() { echo_ "."; }
|
||||||
|
function __edotw() { echo_ "w"; }
|
||||||
|
function __edotx() { echo_ "x"; }
|
||||||
|
function __edotp() { echo_ "+"; }
|
||||||
|
function __edotd() { tooenc "($1)"; }
|
||||||
|
function __eendo() { echo "[ok]"; }
|
||||||
|
function __eendx() { echo "[error]"; }
|
|
@ -115,7 +115,7 @@ optdesc
|
||||||
: description de l'option. cette valeur est facultative. si la description
|
: description de l'option. cette valeur est facultative. si la description
|
||||||
commence par ++, c'est une option avancée qui n'est pas affichée par défaut."
|
commence par ++, c'est une option avancée qui n'est pas affichée par défaut."
|
||||||
function parse_args() {
|
function parse_args() {
|
||||||
[ -z "$NULIB_NO_DISABLE_SET_X" ] && [[ $- == *x* ]] && { set +x; local NULIB_ARGS_SET_X=1; }
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
local __r=
|
local __r=
|
||||||
local __DIE='[ -n "$NULIB_ARGS_ONERROR_RETURN" ] && return 1 || die'
|
local __DIE='[ -n "$NULIB_ARGS_ONERROR_RETURN" ] && return 1 || die'
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ function parse_args() {
|
||||||
__DEFS=("$@")
|
__DEFS=("$@")
|
||||||
__parse_args || __r=1
|
__parse_args || __r=1
|
||||||
fi
|
fi
|
||||||
[ -n "$NULIB_ARGS_SET_X" ] && set -x
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
if [ -n "$__r" ]; then
|
if [ -n "$__r" ]; then
|
||||||
eval "$__DIE"
|
eval "$__DIE"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -24,13 +24,9 @@ function uread() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function is_interaction() {
|
function set_interaction() { :;}
|
||||||
return 1
|
function is_interaction() { return 1; }
|
||||||
}
|
function check_interaction() { return 0; }
|
||||||
|
|
||||||
function check_interaction() {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
function get_interaction_option() { :;}
|
function get_interaction_option() { :;}
|
||||||
|
|
||||||
function ask_yesno() {
|
function ask_yesno() {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
##@cooked nocomments
|
##@cooked nocomments
|
||||||
module: base.output "Fonctions de base: affichage"
|
module: base.output "Fonctions de base: affichage"
|
||||||
|
nulib__load: _output_vanilla
|
||||||
|
|
||||||
NULIB__TAB=$'\t'
|
NULIB__TAB=$'\t'
|
||||||
NULIB__LATIN1=iso-8859-1
|
NULIB__LATIN1=iso-8859-1
|
||||||
|
@ -155,152 +156,154 @@ function elogto() {
|
||||||
export NULIB__ESTACK NULIB__TLEVEL
|
export NULIB__ESTACK NULIB__TLEVEL
|
||||||
function __indent() {
|
function __indent() {
|
||||||
# indenter les lignes de $1, sauf la première
|
# indenter les lignes de $1, sauf la première
|
||||||
if [ "${1/
|
local -a lines; local line first=1
|
||||||
/}" != "$1" ]; then
|
local indent="$NULIB__TLEVEL$2"
|
||||||
sed "2,\$s/^/${NULIB__TLEVEL}/g" <<<"$1"
|
setx -a lines=echo "$1"
|
||||||
|
for line in "${lines[@]}"; do
|
||||||
|
if [ -n "$first" ]; then
|
||||||
|
recho "$line"
|
||||||
|
first=
|
||||||
else
|
else
|
||||||
recho "$1"
|
recho "$indent$line"
|
||||||
fi
|
fi
|
||||||
}
|
|
||||||
# fonctions à surcharger pour modifier la façon dont les messages sont affichés
|
|
||||||
function __eerror() { tooenc "$(__edate)${NULIB__TLEVEL}ERROR $(__indent "$1")"; }
|
|
||||||
function __ewarn() { tooenc "$(__edate)${NULIB__TLEVEL}WARNING $(__indent "$1")"; }
|
|
||||||
function __enote() { tooenc "$(__edate)${NULIB__TLEVEL}NOTE $(__indent "$1")"; }
|
|
||||||
function __ebanner() {
|
|
||||||
local maxi="${COLUMNS:-80}"
|
|
||||||
local prefix="$(__edate)${NULIB__TLEVEL}" lsep line
|
|
||||||
local -a lines
|
|
||||||
|
|
||||||
lsep="$prefix"
|
|
||||||
while [ ${#lsep} -lt $maxi ]; do lsep="$lsep="; done
|
|
||||||
|
|
||||||
tooenc "$lsep"
|
|
||||||
maxi=$(($maxi - 1))
|
|
||||||
array_xsplitl lines "$1"
|
|
||||||
for line in "" "${lines[@]}" ""; do
|
|
||||||
line="$prefix= $line"
|
|
||||||
if [ ${#line} -le $maxi ]; then
|
|
||||||
while [ ${#line} -lt $maxi ]; do line="$line "; done
|
|
||||||
line="$line="
|
|
||||||
fi
|
|
||||||
tooenc "$line"
|
|
||||||
done
|
done
|
||||||
tooenc "$lsep"
|
|
||||||
}
|
}
|
||||||
function __eimportant() { tooenc "$(__edate)${NULIB__TLEVEL}IMPORTANT $(__indent "$1")"; }
|
|
||||||
function __eattention() { tooenc "$(__edate)${NULIB__TLEVEL}ATTENTION $(__indent "$1")"; }
|
|
||||||
function __einfo() { tooenc "$(__edate)${NULIB__TLEVEL}INFO $(__indent "$1")"; }
|
|
||||||
function __eecho() { tooenc "$(__edate)${NULIB__TLEVEL}$(__indent "$1")"; }
|
|
||||||
function __eecho_() { tooenc_ "$(__edate)${NULIB__TLEVEL}$(__indent "$1")"; }
|
|
||||||
function __edebug() { tooenc "$(__edate)${NULIB__TLEVEL}DEBUG $(__indent "$1")"; }
|
|
||||||
function __estep() { tooenc "$(__edate)${NULIB__TLEVEL}. $(__indent "$1")"; }
|
|
||||||
function __estepe() { tooenc "$(__edate)${NULIB__TLEVEL}.E $(__indent "$1")"; }
|
|
||||||
function __estepw() { tooenc "$(__edate)${NULIB__TLEVEL}.W $(__indent "$1")"; }
|
|
||||||
function __estepn() { tooenc "$(__edate)${NULIB__TLEVEL}.N $(__indent "$1")"; }
|
|
||||||
function __estepi() { tooenc "$(__edate)${NULIB__TLEVEL}.I $(__indent "$1")"; }
|
|
||||||
function __estep_() { tooenc_ "$(__edate)${NULIB__TLEVEL}. $(__indent "$1")"; }
|
|
||||||
function __estepe_() { tooenc_ "$(__edate)${NULIB__TLEVEL}.E $(__indent "$1")"; }
|
|
||||||
function __estepw_() { tooenc_ "$(__edate)${NULIB__TLEVEL}.W $(__indent "$1")"; }
|
|
||||||
function __estepn_() { tooenc_ "$(__edate)${NULIB__TLEVEL}.N $(__indent "$1")"; }
|
|
||||||
function __estepi_() { tooenc_ "$(__edate)${NULIB__TLEVEL}.I $(__indent "$1")"; }
|
|
||||||
function __esection() {
|
|
||||||
local maxi="${COLUMNS:-80}"
|
|
||||||
local prefix="$(__edate)${NULIB__TLEVEL}" lsep
|
|
||||||
|
|
||||||
lsep="$prefix"
|
function __complete() {
|
||||||
while [ ${#lsep} -lt $maxi ]; do lsep="$lsep="; done
|
# compléter $1 avec $3 jusqu'à obtenir une taille de $2 caractères
|
||||||
|
local columns="${COLUMNS:-80}"
|
||||||
tooenc "$lsep"
|
local line="$1" maxi="${2:-$columns}" sep="${3:- }"
|
||||||
if [ -n "$*" ]; then
|
while [ ${#line} -lt $maxi ]; do
|
||||||
tooenc "$prefix$*"
|
line="$line$sep"
|
||||||
tooenc "$lsep"
|
done
|
||||||
fi
|
echo "$line"
|
||||||
}
|
}
|
||||||
function __etitle() { tooenc "$(__edate)${NULIB__TLEVEL}=== $(__indent "$1")"; }
|
|
||||||
function __ebegin() { tooenc_ "$(__edate)${NULIB__TLEVEL}. $(__indent "$1"): "; }
|
|
||||||
function __edoto() { echo_ "."; }
|
|
||||||
function __edotw() { echo_ "w"; }
|
|
||||||
function __edotx() { echo_ "x"; }
|
|
||||||
function __edotp() { echo_ "+"; }
|
|
||||||
function __edotd() { tooenc "($1)"; }
|
|
||||||
function __eendo() { echo "[ok]"; }
|
|
||||||
function __eendx() { echo "[error]"; }
|
|
||||||
PRETTYOPTS=()
|
PRETTYOPTS=()
|
||||||
function set_verbosity() { :;}
|
function set_verbosity() { :;}
|
||||||
function set_interaction() { :;}
|
function check_verbosity() { return 0; }
|
||||||
function show_error() {
|
|
||||||
# tester respectivement si on doit afficher les messages d'erreur,
|
|
||||||
# d'avertissement, d'information, de debug
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
function show_warn() {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
function show_info() {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
function show_verbose() {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
function show_debug() {
|
|
||||||
[ -n "$DEBUG" ]
|
|
||||||
}
|
|
||||||
function check_verbosity() {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
function get_verbosity_option() { :;}
|
function get_verbosity_option() { :;}
|
||||||
|
|
||||||
|
# tester respectivement si on doit afficher les messages d'erreur,
|
||||||
|
# d'avertissement, d'information, de debug
|
||||||
|
function show_error() { return 0; }
|
||||||
|
function show_warn() { return 0; }
|
||||||
|
function show_info() { return 0; }
|
||||||
|
function show_verbose() { return 0; }
|
||||||
|
function show_debug() { [ -n "$DEBUG" ]; }
|
||||||
|
|
||||||
# note: toutes les fonctions d'affichage e* écrivent sur stderr
|
# note: toutes les fonctions d'affichage e* écrivent sur stderr
|
||||||
NULIB__EPENDING=
|
|
||||||
function eflush() {
|
function esection() {
|
||||||
# Afficher les messages en attente
|
# Afficher une section. Toutes les indentations sont remises à zéro
|
||||||
if [ -n "$NULIB__EPENDING" ]; then recho "$NULIB__EPENDING" 1>&2; NULIB__EPENDING=; fi
|
show_info || return
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
NULIB__ESTACK=
|
||||||
|
NULIB__TLEVEL=
|
||||||
|
__esection "$*" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
}
|
}
|
||||||
function eclearp() {
|
|
||||||
# Supprimer les message en attente
|
function etitle() {
|
||||||
NULIB__EPENDING=
|
# Afficher le titre $1. Le contenu sous des titres imbriqués est affiché
|
||||||
|
# indenté. le titre n'est pas terminé, et il faut le terminer explicitement
|
||||||
|
# avec eend, sauf dans certains cas précis:
|
||||||
|
# - Si $2..$* est spécifié, c'est une commande. Lancer la commande dans le
|
||||||
|
# contexte du titre. Puis, le titre est automatiquement terminé
|
||||||
|
# - Sinon, le titre doit toujours être terminé explicitement.
|
||||||
|
local title="$1"; shift
|
||||||
|
# etitle
|
||||||
|
[ -n "$NULIB__ESTACK" ] && NULIB__TLEVEL="${NULIB__TLEVEL} "
|
||||||
|
NULIB__ESTACK="$NULIB__ESTACK:t"
|
||||||
|
if show_info; then
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
__etitle "$title" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
|
fi
|
||||||
|
# commande
|
||||||
|
local r=0
|
||||||
|
if [ $# -gt 0 ]; then
|
||||||
|
"$@"; r=$?
|
||||||
|
eend $r
|
||||||
|
fi
|
||||||
|
return $r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function edesc() {
|
||||||
|
# Afficher une description sous le titre courant
|
||||||
|
show_info || return
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
__edesc "$*" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
|
}
|
||||||
|
|
||||||
|
function ebanner() {
|
||||||
|
# Afficher un message très important encadré, puis attendre 5 secondes
|
||||||
|
show_error || return
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
__ebanner "$*" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
|
sleep 5
|
||||||
|
}
|
||||||
|
|
||||||
|
function eimportant() {
|
||||||
|
# Afficher un message très important
|
||||||
|
show_error || return
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
__eimportant "$*" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
|
}
|
||||||
|
|
||||||
|
function eattention() {
|
||||||
|
# Afficher un message important
|
||||||
|
show_warn || return
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
__eattention "$*" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
|
}
|
||||||
|
|
||||||
function eerror() {
|
function eerror() {
|
||||||
# Afficher un message d'erreur
|
# Afficher un message d'erreur
|
||||||
show_error || return; eflush; __eerror "$*" 1>&2
|
show_error || return
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
__eerror "$*" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
}
|
}
|
||||||
|
|
||||||
function eerror_unless() {
|
function eerror_unless() {
|
||||||
# Afficher $1 avec eerror() si la commande $2..@ retourne FAUX. dans tous les cas, retourner le code de retour de la commande.
|
# Afficher $1 avec eerror() si la commande $2..@ retourne FAUX. dans tous les cas, retourner le code de retour de la commande.
|
||||||
local eu__r
|
local msg="$1"; shift
|
||||||
local eu__msg="$1"; shift
|
local r=1
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
[ -n "$eu__msg" ] && eerror "$eu__msg"
|
[ -n "$msg" ] && eerror "$msg"
|
||||||
return 1
|
|
||||||
elif "$@"; then
|
|
||||||
:
|
|
||||||
else
|
else
|
||||||
eu__r=$?
|
"$@"; r=$?
|
||||||
[ -n "$eu__msg" ] && eerror "$eu__msg"
|
if [ $r -ne 0 -a -n "$msg" ]; then
|
||||||
return $eu__r
|
eerror "$msg"
|
||||||
fi
|
fi
|
||||||
return 0
|
fi
|
||||||
|
return $r
|
||||||
}
|
}
|
||||||
|
|
||||||
function eerror_if() {
|
function eerror_if() {
|
||||||
# Afficher $1 avec eerror() si la commande $2..@ retourne VRAI. dans tous les cas, retourner le code de retour de la commande.
|
# Afficher $1 avec eerror() si la commande $2..@ retourne VRAI. dans tous les cas, retourner le code de retour de la commande.
|
||||||
local ei__r=0
|
local msg="$1"; shift
|
||||||
local ei__msg="$1"; shift
|
local r=0
|
||||||
[ $# -eq 0 ] && return 0
|
if [ $# -gt 0 ]; then
|
||||||
if "$@"; then
|
"$@"; r=$?
|
||||||
[ -n "$ei__msg" ] && eerror "$ei__msg"
|
if [ $r -eq 0 -a -n "$msg" ]; then
|
||||||
else
|
eerror "$msg"
|
||||||
ei__r=$?
|
|
||||||
fi
|
fi
|
||||||
return $ei__r
|
fi
|
||||||
|
return $r
|
||||||
}
|
}
|
||||||
|
|
||||||
function set_die_return() {
|
function set_die_return() {
|
||||||
NULIB_DIE="return 1"
|
NULIB__DIE="return 1"
|
||||||
}
|
}
|
||||||
function die() {
|
function die() {
|
||||||
[ $# -gt 0 ] && eerror "$@"
|
[ $# -gt 0 ] && eerror "$@"
|
||||||
local die="${NULIB_DIE:-exit 1}"
|
local die="${NULIB__DIE:-exit 1}"
|
||||||
eval "$die" || return
|
eval "$die" || return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,41 +311,44 @@ function die_with {
|
||||||
[ $# -gt 0 ] && eerror "$1"
|
[ $# -gt 0 ] && eerror "$1"
|
||||||
shift
|
shift
|
||||||
[ $# -gt 0 ] && "$@"
|
[ $# -gt 0 ] && "$@"
|
||||||
local die="${NULIB_DIE:-exit 1}"
|
local die="${NULIB__DIE:-exit 1}"
|
||||||
eval "$die" || return
|
eval "$die" || return
|
||||||
}
|
}
|
||||||
|
|
||||||
function die_unless() {
|
function die_unless() {
|
||||||
# Afficher $1 et quitter le script avec die() si la commande $2..@ retourne FAUX
|
# Afficher $1 et quitter le script avec die() si la commande $2..@ retourne FAUX
|
||||||
local du__r
|
local msg="$1"; shift
|
||||||
local du__msg="$1"; shift
|
local die="${NULIB__DIE:-exit 1}"
|
||||||
local du__die="${NULIB_DIE:-exit 1}"
|
local r=1
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
[ -n "$du__msg" ] && eerror "$du__msg"
|
[ -n "$msg" ] && eerror "$msg"
|
||||||
eval "$du__die" || return
|
|
||||||
elif "$@"; then
|
|
||||||
:
|
|
||||||
else
|
else
|
||||||
du__r=$?
|
"$@"; r=$?
|
||||||
[ -n "$du__msg" ] && eerror "$du__msg"
|
if [ $r -ne 0 -a -n "$msg" ]; then
|
||||||
eval "${du__die% *} $du__r" || return
|
eerror "$msg"
|
||||||
fi
|
fi
|
||||||
return 0
|
fi
|
||||||
|
if [ $r -ne 0 ]; then
|
||||||
|
eval "${die% *} $r" || return $r
|
||||||
|
fi
|
||||||
|
return $r
|
||||||
}
|
}
|
||||||
|
|
||||||
function die_if() {
|
function die_if() {
|
||||||
# Afficher $1 et quitter le script avec die() si la commande $2..@ retourne VRAI. sinon, retourner le code de retour de la commande
|
# Afficher $1 et quitter le script avec die() si la commande $2..@ retourne VRAI. sinon, retourner le code de retour de la commande
|
||||||
local di__r=0
|
local msg="$1"; shift
|
||||||
local di__msg="$1"; shift
|
local die="${NULIB__DIE:-exit 1}"
|
||||||
local di__die="${NULIB_DIE:-exit 1}"
|
local r=0
|
||||||
[ $# -eq 0 ] && return 0
|
if [ $# -gt 0 ]; then
|
||||||
if "$@"; then
|
"$@"; r=$?
|
||||||
[ -n "$di__msg" ] && eerror "$di__msg"
|
if [ $r -eq 0 -a -n "$msg" ]; then
|
||||||
eval "${di__die% *} 0" || return
|
eerror "$msg"
|
||||||
else
|
|
||||||
di__r=$?
|
|
||||||
fi
|
fi
|
||||||
return $di__r
|
fi
|
||||||
|
if [ $r -eq 0 ]; then
|
||||||
|
eval "${die% *} $r" || return $r
|
||||||
|
fi
|
||||||
|
return $r
|
||||||
}
|
}
|
||||||
|
|
||||||
function exit_with {
|
function exit_with {
|
||||||
|
@ -352,54 +358,59 @@ function exit_with {
|
||||||
|
|
||||||
function ewarn() {
|
function ewarn() {
|
||||||
# Afficher un message d'avertissement
|
# Afficher un message d'avertissement
|
||||||
show_warn || return; eflush; __ewarn "$*" 1>&2
|
show_warn || return
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
__ewarn "$*" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
}
|
}
|
||||||
|
|
||||||
function enote() {
|
function enote() {
|
||||||
# Afficher un message d'information de même niveau qu'un avertissement
|
# Afficher un message d'information de même niveau qu'un avertissement
|
||||||
show_info || return; eflush; __enote "$*" 1>&2
|
show_info || return
|
||||||
}
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
function ebanner() {
|
__enote "$*" 1>&2
|
||||||
# Afficher un message très important encadré, puis attendre 5 secondes
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
show_error || return; eflush; __ebanner "$*" 1>&2; sleep 5
|
|
||||||
}
|
|
||||||
function eimportant() {
|
|
||||||
# Afficher un message très important
|
|
||||||
show_error || return; eflush; __eimportant "$*" 1>&2
|
|
||||||
}
|
|
||||||
function eattention() {
|
|
||||||
# Afficher un message important
|
|
||||||
show_warn || return; eflush; __eattention "$*" 1>&2
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function einfo() {
|
function einfo() {
|
||||||
# Afficher un message d'information
|
# Afficher un message d'information
|
||||||
show_info || return; eflush; __einfo "$*" 1>&2
|
show_info || return
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
__einfo "$*" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
}
|
}
|
||||||
|
|
||||||
function eecho() {
|
function eecho() {
|
||||||
# Afficher un message d'information sans préfixe
|
# Afficher un message d'information sans préfixe
|
||||||
show_info || return; eflush; __eecho "$*" 1>&2
|
show_info || return
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
__eecho "$*" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
}
|
}
|
||||||
|
|
||||||
function eecho_() {
|
function eecho_() {
|
||||||
show_info || return; eflush; __eecho_ "$*" 1>&2
|
show_info || return
|
||||||
}
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
function edebug() {
|
__eecho_ "$*" 1>&2
|
||||||
# Afficher un message de debug
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
show_debug || return; eflush; __edebug "$*" 1>&2
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function trace() {
|
function trace() {
|
||||||
# Afficher la commande $1..@, la lancer, puis afficher son code d'erreur si une
|
# Afficher la commande $1..@, la lancer, puis afficher son code d'erreur si une
|
||||||
# erreur se produit
|
# erreur se produit
|
||||||
local r cmd="$(qvals "$@")"
|
local r cmd="$(qvals "$@")"
|
||||||
show_info && { eflush; __eecho "\$ $cmd" 1>&2; }
|
show_info && { __eecho "\$ $cmd" 1>&2; }
|
||||||
"$@"; r=$?
|
"$@"; r=$?
|
||||||
if [ $r -ne 0 ]; then
|
if [ $r -ne 0 ]; then
|
||||||
if show_info; then
|
if show_info; then
|
||||||
eflush; __eecho "^ [EC #$r]" 1>&2
|
__eecho "^ [EC #$r]" 1>&2
|
||||||
elif show_error; then
|
elif show_error; then
|
||||||
eflush; __eecho "^ $cmd [EC #$r]" 1>&2;
|
__eecho "^ $cmd [EC #$r]" 1>&2
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
return $r
|
return $r
|
||||||
}
|
}
|
||||||
|
|
||||||
function trace_error() {
|
function trace_error() {
|
||||||
# Lancer la commande $1..@, puis afficher son code d'erreur si une erreur se
|
# 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
|
# produit. La différence avec trace() est que la commande n'est affichée que si
|
||||||
|
@ -408,118 +419,36 @@ function trace_error() {
|
||||||
"$@"; r=$?
|
"$@"; r=$?
|
||||||
if [ $r -ne 0 ]; then
|
if [ $r -ne 0 ]; then
|
||||||
local cmd="$(qvals "$@")"
|
local cmd="$(qvals "$@")"
|
||||||
show_error && { eflush; __eecho "^ $cmd [EC #$r]" 1>&2; }
|
if show_error; then
|
||||||
|
__eecho "^ $cmd [EC #$r]" 1>&2
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
return $r
|
return $r
|
||||||
}
|
}
|
||||||
|
|
||||||
function esection() {
|
function edebug() {
|
||||||
show_info || return; eflush; __esection "$*" 1>&2
|
# Afficher un message de debug
|
||||||
|
show_debug || return
|
||||||
|
eval "$NULIB__DISABLE_SET_X"
|
||||||
|
__edebug "$*" 1>&2
|
||||||
|
eval "$NULIB__ENABLE_SET_X"
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
|
||||||
# la terminer explicitement avec eend, sauf dans certains cas précis:
|
|
||||||
# - Si $2..$* est spécifié, c'est une commande. Lancer la commande dans le
|
|
||||||
# contexte de la section. Puis, la section est automatiquement terminée sauf si
|
|
||||||
# l'option -s est spécifiée, auquel cas la section reste ouverte. Si l'option -p
|
|
||||||
# est spécifiée, eclearp() est appelé pour purger les messages en attente
|
|
||||||
# - Dans le cas contraire, l'option -s est ignorée: la section doit toujours
|
|
||||||
# être terminée explicitement.
|
|
||||||
# La fonction etitled() est comme etitle(), mais le titre n'est pas affiché
|
|
||||||
# immédiatement. L'affichage effectif est effectué dès qu'une fonction e* est
|
|
||||||
# utilisée. Ceci permet, avec la fonction eclearp(), de ne pas afficher de titre
|
|
||||||
# pour une section vide.
|
|
||||||
local __t_deferred=
|
|
||||||
__t_etitle "$@"
|
|
||||||
}
|
|
||||||
function etitled() {
|
|
||||||
local __t_deferred=1
|
|
||||||
__t_etitle "$@"
|
|
||||||
}
|
|
||||||
function __t_etitle() {
|
|
||||||
local __t_eend=default
|
|
||||||
local __t_clearp=
|
|
||||||
while [ -n "$1" ]; do
|
|
||||||
if [ "$1" == "--" ]; then
|
|
||||||
shift
|
|
||||||
break
|
|
||||||
elif [ "$1" == "-s" ]; then
|
|
||||||
__t_eend=
|
|
||||||
shift
|
|
||||||
elif [ "$1" == "--eend" ]; then
|
|
||||||
__t_eend=1
|
|
||||||
shift
|
|
||||||
elif [ "$1" == "-p" ]; then
|
|
||||||
__t_clearp=1
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
local __t_title="$1"; shift
|
|
||||||
local __t_s=0
|
|
||||||
# etitle
|
|
||||||
[ -n "$NULIB__ESTACK" ] && NULIB__TLEVEL="${NULIB__TLEVEL} "
|
|
||||||
NULIB__ESTACK="$NULIB__ESTACK:t"
|
|
||||||
if show_info; then
|
|
||||||
if [ -n "$__t_deferred" ]; then
|
|
||||||
NULIB__EPENDING="${NULIB__EPENDING:+$NULIB__EPENDING
|
|
||||||
}$(__etitle "$__t_title")"
|
|
||||||
else
|
|
||||||
eflush
|
|
||||||
__etitle "$__t_title" 1>&2
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
# commande
|
|
||||||
if [ $# -gt 0 ]; then
|
|
||||||
"$@"
|
|
||||||
__t_s=$?
|
|
||||||
[ "$__t_eend" == "default" ] && __t_eend=1
|
|
||||||
fi
|
|
||||||
# eend
|
|
||||||
[ "$__t_eend" == "default" ] && __t_eend=
|
|
||||||
if [ -n "$__t_eend" ]; then
|
|
||||||
eend $__t_s
|
|
||||||
[ -n "$__t_clearp" ] && eclearp
|
|
||||||
fi
|
|
||||||
return $__t_s
|
|
||||||
}
|
|
||||||
function estep() {
|
|
||||||
# Afficher la description d'une opération. Cette fonction est particulièrement
|
# Afficher la description d'une opération. Cette fonction est particulièrement
|
||||||
# appropriée dans le contexte d'un etitle.
|
# appropriée dans le contexte d'un etitle.
|
||||||
# Les variantes e (error), w (warning), n (note), i (info) permettent d'afficher
|
# Les variantes e (error), w (warning), n (note), i (info) permettent d'afficher
|
||||||
# des couleurs différentes, mais toutes sont du niveau info.
|
# des couleurs différentes, mais toutes sont du niveau info.
|
||||||
show_info || return; eflush; __estep "$*" 1>&2
|
function estep() { show_info || return; eval "$NULIB__DISABLE_SET_X"; __estep "$*" 1>&2; eval "$NULIB__ENABLE_SET_X"; }
|
||||||
}
|
function estepe() { show_info || return; eval "$NULIB__DISABLE_SET_X"; __estepe "$*" 1>&2; eval "$NULIB__ENABLE_SET_X"; }
|
||||||
function estepe() {
|
function estepw() { show_info || return; eval "$NULIB__DISABLE_SET_X"; __estepw "$*" 1>&2; eval "$NULIB__ENABLE_SET_X"; }
|
||||||
show_info || return; eflush; __estepe "$*" 1>&2
|
function estepn() { show_info || return; eval "$NULIB__DISABLE_SET_X"; __estepn "$*" 1>&2; eval "$NULIB__ENABLE_SET_X"; }
|
||||||
}
|
function estepi() { show_info || return; eval "$NULIB__DISABLE_SET_X"; __estepi "$*" 1>&2; eval "$NULIB__ENABLE_SET_X"; }
|
||||||
function estepw() {
|
function estep_() { show_info || return; eval "$NULIB__DISABLE_SET_X"; __estep_ "$*" 1>&2; eval "$NULIB__ENABLE_SET_X"; }
|
||||||
show_info || return; eflush; __estepw "$*" 1>&2
|
function estepe_() { show_info || return; eval "$NULIB__DISABLE_SET_X"; __estepe_ "$*" 1>&2; eval "$NULIB__ENABLE_SET_X"; }
|
||||||
}
|
function estepw_() { show_info || return; eval "$NULIB__DISABLE_SET_X"; __estepw_ "$*" 1>&2; eval "$NULIB__ENABLE_SET_X"; }
|
||||||
function estepn() {
|
function estepn_() { show_info || return; eval "$NULIB__DISABLE_SET_X"; __estepn_ "$*" 1>&2; eval "$NULIB__ENABLE_SET_X"; }
|
||||||
show_info || return; eflush; __estepn "$*" 1>&2
|
function estepi_() { show_info || return; eval "$NULIB__DISABLE_SET_X"; __estepi_ "$*" 1>&2; eval "$NULIB__ENABLE_SET_X"; }
|
||||||
}
|
|
||||||
function estepi() {
|
|
||||||
show_info || return; eflush; __estepi "$*" 1>&2
|
|
||||||
}
|
|
||||||
function estep_() {
|
|
||||||
show_info || return; eflush; __estep_ "$*" 1>&2
|
|
||||||
}
|
|
||||||
function estepe_() {
|
|
||||||
show_info || return; eflush; __estepe_ "$*" 1>&2
|
|
||||||
}
|
|
||||||
function estepw_() {
|
|
||||||
show_info || return; eflush; __estepw_ "$*" 1>&2
|
|
||||||
}
|
|
||||||
function estepn_() {
|
|
||||||
show_info || return; eflush; __estepn_ "$*" 1>&2
|
|
||||||
}
|
|
||||||
function estepi_() {
|
|
||||||
show_info || return; eflush; __estepi_ "$*" 1>&2
|
|
||||||
}
|
|
||||||
function ebegin() {
|
function ebegin() {
|
||||||
# Afficher le message $1, qui décrit le début d'une opération. Cette fonction
|
# Afficher le message $1, qui décrit le début d'une opération. Cette fonction
|
||||||
# débute une section, qu'il faut terminer avec eend.
|
# débute une section, qu'il faut terminer avec eend.
|
||||||
|
@ -546,7 +475,6 @@ function ebegin() {
|
||||||
# ebegin
|
# ebegin
|
||||||
NULIB__ESTACK="$NULIB__ESTACK:b"
|
NULIB__ESTACK="$NULIB__ESTACK:b"
|
||||||
if show_info; then
|
if show_info; then
|
||||||
eflush
|
|
||||||
__ebegin "$__b_msg" 1>&2
|
__ebegin "$__b_msg" 1>&2
|
||||||
fi
|
fi
|
||||||
# commande
|
# commande
|
||||||
|
@ -560,13 +488,13 @@ function ebegin() {
|
||||||
[ -n "$__b_eend" ] && eend $__b_s
|
[ -n "$__b_eend" ] && eend $__b_s
|
||||||
return $__b_s
|
return $__b_s
|
||||||
}
|
}
|
||||||
|
|
||||||
function edot() {
|
function edot() {
|
||||||
# Afficher une étape d'une opération, matérialisée par un point '.' ou une
|
# Afficher une étape d'une opération, matérialisée par un point '.' ou une
|
||||||
# croix 'x' en cas de succès ou d'erreur. Cette fonction est particulièrement
|
# croix 'x' en cas de succès ou d'erreur. Cette fonction est particulièrement
|
||||||
# appropriée dans le contexte d'un ebegin.
|
# appropriée dans le contexte d'un ebegin.
|
||||||
local s=$?
|
local s=$?
|
||||||
show_info || return
|
show_info || return
|
||||||
eflush
|
|
||||||
[ -n "$1" ] && s="$1"
|
[ -n "$1" ] && s="$1"
|
||||||
shift
|
shift
|
||||||
if [ "$s" == "0" ]; then
|
if [ "$s" == "0" ]; then
|
||||||
|
@ -577,19 +505,20 @@ function edot() {
|
||||||
show_verbose && [ $# -gt 0 ] && __edotd "$*" 1>&2
|
show_verbose && [ $# -gt 0 ] && __edotd "$*" 1>&2
|
||||||
return $s
|
return $s
|
||||||
}
|
}
|
||||||
|
|
||||||
function edotw() {
|
function edotw() {
|
||||||
# Afficher un avertissement comme étape d'une opération, matérialisée par une
|
# Afficher un avertissement comme étape d'une opération, matérialisée par une
|
||||||
# lettre 'w' (typiquement de couleur jaune). Cette fonction est particulièrement
|
# lettre 'w' (typiquement de couleur jaune). Cette fonction est particulièrement
|
||||||
# appropriée dans le contexte d'un ebegin.
|
# appropriée dans le contexte d'un ebegin.
|
||||||
local s=$?
|
local s=$?
|
||||||
show_info || return
|
show_info || return
|
||||||
eflush
|
|
||||||
[ -n "$1" ] && s="$1"
|
[ -n "$1" ] && s="$1"
|
||||||
shift
|
shift
|
||||||
__edotw 1>&2
|
__edotw 1>&2
|
||||||
show_verbose && [ $# -gt 0 ] && __edotd "$*" 1>&2
|
show_verbose && [ $# -gt 0 ] && __edotd "$*" 1>&2
|
||||||
return $s
|
return $s
|
||||||
}
|
}
|
||||||
|
|
||||||
function ewait() {
|
function ewait() {
|
||||||
# Afficher les étapes d'une opération qui dure, matérialisées par des '+' toutes
|
# Afficher les étapes d'une opération qui dure, matérialisées par des '+' toutes
|
||||||
# les secondes tant que le processus $1 tourne.
|
# les secondes tant que le processus $1 tourne.
|
||||||
|
@ -601,7 +530,6 @@ function ewait() {
|
||||||
[ -n "$1" ] || return 1
|
[ -n "$1" ] || return 1
|
||||||
if show_info; then
|
if show_info; then
|
||||||
local count=2
|
local count=2
|
||||||
eflush
|
|
||||||
little_sleep # certains processus retournent tout de suite
|
little_sleep # certains processus retournent tout de suite
|
||||||
while is_running "$1"; do
|
while is_running "$1"; do
|
||||||
sleep 1
|
sleep 1
|
||||||
|
@ -619,6 +547,7 @@ function ewait() {
|
||||||
wait "$1"
|
wait "$1"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function eend() {
|
function eend() {
|
||||||
# Terminer une section.
|
# Terminer une section.
|
||||||
# Avec l'option -c, remettre à zéro toutes les informations de section
|
# Avec l'option -c, remettre à zéro toutes les informations de section
|
||||||
|
@ -635,7 +564,6 @@ function eend() {
|
||||||
# terminer ebegin
|
# terminer ebegin
|
||||||
NULIB__ESTACK="${NULIB__ESTACK%:b}"
|
NULIB__ESTACK="${NULIB__ESTACK%:b}"
|
||||||
show_info || return
|
show_info || return
|
||||||
eflush
|
|
||||||
[ -n "$1" ] && s="$1"
|
[ -n "$1" ] && s="$1"
|
||||||
if [ "$s" == "0" ]; then
|
if [ "$s" == "0" ]; then
|
||||||
__eendo 1>&2
|
__eendo 1>&2
|
||||||
|
@ -648,6 +576,7 @@ function eend() {
|
||||||
NULIB__TLEVEL="${NULIB__TLEVEL% }"
|
NULIB__TLEVEL="${NULIB__TLEVEL% }"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function __elinedots() {
|
function __elinedots() {
|
||||||
ebegin "$1"
|
ebegin "$1"
|
||||||
local line
|
local line
|
||||||
|
|
|
@ -56,78 +56,21 @@ function __set_no_colors() {
|
||||||
else
|
else
|
||||||
is_yes "$1" && NO_COLORS=1 || NO_COLORS=
|
is_yes "$1" && NO_COLORS=1 || NO_COLORS=
|
||||||
fi
|
fi
|
||||||
|
|
||||||
COULEUR_ROUGE="$(get_color RED BOLD)"
|
COULEUR_ROUGE="$(get_color RED BOLD)"
|
||||||
COULEUR_VERTE="$(get_color GREEN BOLD)"
|
COULEUR_VERTE="$(get_color GREEN BOLD)"
|
||||||
COULEUR_JAUNE="$(get_color YELLOW BOLD)"
|
COULEUR_JAUNE="$(get_color YELLOW BOLD)"
|
||||||
COULEUR_BLEUE="$(get_color BLUE BOLD)"
|
COULEUR_BLEUE="$(get_color BLUE BOLD)"
|
||||||
COULEUR_BLANCHE="$(get_color WHITE BOLD)"
|
COULEUR_BLANCHE="$(get_color WHITE BOLD)"
|
||||||
COULEUR_NORMALE="$(get_color RESET)"
|
COULEUR_NORMALE="$(get_color RESET)"
|
||||||
|
if [ -n "$NO_COLORS" ]; then
|
||||||
|
nulib__load: _output_vanilla
|
||||||
|
else
|
||||||
|
nulib__load: _output_color
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
__set_no_colors
|
__set_no_colors
|
||||||
|
|
||||||
function __eerror() { local p; [ -z "$NO_COLORS" ] && p="E" || p="ERROR"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_ROUGE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __ewarn() { local p; [ -z "$NO_COLORS" ] && p="W" || p="WARNING"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_JAUNE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __enote() { local p; [ -z "$NO_COLORS" ] && p="N" || p="NOTE"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_VERTE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __ebanner() {
|
|
||||||
local maxi="${COLUMNS:-80}"
|
|
||||||
local prefix="$(__edate)${NULIB__TLEVEL}" lsep line
|
|
||||||
local -a lines
|
|
||||||
|
|
||||||
lsep="$prefix"
|
|
||||||
while [ ${#lsep} -lt $maxi ]; do lsep="$lsep="; done
|
|
||||||
|
|
||||||
tooenc "$COULEUR_ROUGE$lsep"
|
|
||||||
maxi=$(($maxi - 1))
|
|
||||||
array_xsplitl lines "$1"
|
|
||||||
for line in "" "${lines[@]}" ""; do
|
|
||||||
line="$prefix= $line"
|
|
||||||
if [ ${#line} -le $maxi ]; then
|
|
||||||
while [ ${#line} -lt $maxi ]; do line="$line "; done
|
|
||||||
line="$line="
|
|
||||||
fi
|
|
||||||
tooenc "$line"
|
|
||||||
done
|
|
||||||
tooenc "$lsep$COULEUR_NORMALE"
|
|
||||||
}
|
|
||||||
function __eimportant() { local p; [ -z "$NO_COLORS" ] && p="!" || p="IMPORTANT"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_ROUGE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __eattention() { local p; [ -z "$NO_COLORS" ] && p="*" || p="ATTENTION"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_JAUNE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __einfo() { local p; [ -z "$NO_COLORS" ] && p="I" || p="INFO"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_BLEUE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __edebug() { local p; [ -z "$NO_COLORS" ] && p="D" || p="DEBUG"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_BLANCHE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __estep() { local p; [ -z "$NO_COLORS" ] && p="." || p="."; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_BLANCHE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __estepe() { local p; [ -z "$NO_COLORS" ] && p="." || p=".E"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_ROUGE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __estepw() { local p; [ -z "$NO_COLORS" ] && p="." || p=".W"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_JAUNE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __estepn() { local p; [ -z "$NO_COLORS" ] && p="." || p=".N"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_VERTE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __estepi() { local p; [ -z "$NO_COLORS" ] && p="." || p=".I"; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_BLEUE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __estep_() { local p; [ -z "$NO_COLORS" ] && p="." || p="."; tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_BLANCHE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __estepe_() { local p; [ -z "$NO_COLORS" ] && p="." || p=".E"; tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_ROUGE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __estepw_() { local p; [ -z "$NO_COLORS" ] && p="." || p=".W"; tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_JAUNE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __estepn_() { local p; [ -z "$NO_COLORS" ] && p="." || p=".N"; tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_VERTE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __estepi_() { local p; [ -z "$NO_COLORS" ] && p="." || p=".I"; tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_BLEUE}${p}${COULEUR_NORMALE} $(__indent "$1")"; }
|
|
||||||
function __esection() {
|
|
||||||
local maxi="${COLUMNS:-80}"
|
|
||||||
local prefix="$(__edate)${NULIB__TLEVEL}" lsep
|
|
||||||
|
|
||||||
lsep="$prefix"
|
|
||||||
while [ ${#lsep} -lt $maxi ]; do lsep="$lsep="; done
|
|
||||||
|
|
||||||
if [ -n "$*" ]; then
|
|
||||||
tooenc "$COULEUR_BLEUE$lsep"
|
|
||||||
tooenc "$prefix$*"
|
|
||||||
tooenc "$lsep$COULEUR_NORMALE"
|
|
||||||
else
|
|
||||||
tooenc "$COULEUR_BLEUE$lsep$COULEUR_NORMALE"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
function __etitle() { local p; [ -z "$NO_COLORS" ] && p="T" || p="==="; tooenc "$(__edate)${NULIB__TLEVEL}${COULEUR_BLEUE}${p} $(get_color _)$(__indent "$1")${COULEUR_NORMALE}"; }
|
|
||||||
function __ebegin() { local p; [ -z "$NO_COLORS" ] && p="." || p="."; tooenc_ "$(__edate)${NULIB__TLEVEL}${COULEUR_BLANCHE}${p}${COULEUR_NORMALE} $(__indent "$1"): "; }
|
|
||||||
function __edoto() { echo_ "."; }
|
|
||||||
function __edotw() { echo_ "${COULEUR_JAUNE}w${COULEUR_NORMALE}"; }
|
|
||||||
function __edotx() { echo_ "${COULEUR_ROUGE}x${COULEUR_NORMALE}"; }
|
|
||||||
function __edotp() { echo_ "${COULEUR_JAUNE}+${COULEUR_NORMALE}"; }
|
|
||||||
function __edotd() { tooenc "($1)"; }
|
|
||||||
function __eendo() { echo "${COULEUR_VERTE}[ok]${COULEUR_NORMALE}"; }
|
|
||||||
function __eendx() { echo "${COULEUR_ROUGE}[error]${COULEUR_NORMALE}"; }
|
|
||||||
|
|
||||||
# 5=afficher les messages de debug; 4=afficher les message verbeux;
|
# 5=afficher les messages de debug; 4=afficher les message verbeux;
|
||||||
# 3=afficher les message informatifs; 2=afficher les warnings et les notes;
|
# 3=afficher les message informatifs; 2=afficher les warnings et les notes;
|
||||||
# 1=afficher les erreurs; 0=ne rien afficher
|
# 1=afficher les erreurs; 0=ne rien afficher
|
||||||
|
@ -160,6 +103,7 @@ function set_interaction() {
|
||||||
esac
|
esac
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# Variable à inclure pour lancer automatiquement set_verbosity et
|
# Variable à inclure pour lancer automatiquement set_verbosity et
|
||||||
# set_interaction en fonction des arguments de la ligne de commande. A utiliser
|
# set_interaction en fonction des arguments de la ligne de commande. A utiliser
|
||||||
# de cette manière:
|
# de cette manière:
|
||||||
|
@ -175,6 +119,7 @@ function show_warn() { [ "$__verbosity" -ge 2 ]; }
|
||||||
function show_info() { [ "$__verbosity" -ge 3 ]; }
|
function show_info() { [ "$__verbosity" -ge 3 ]; }
|
||||||
function show_verbose() { [ "$__verbosity" -ge 4 ]; }
|
function show_verbose() { [ "$__verbosity" -ge 4 ]; }
|
||||||
function show_debug() { [ -n "$DEBUG" -o "$__verbosity" -ge 5 ]; }
|
function show_debug() { [ -n "$DEBUG" -o "$__verbosity" -ge 5 ]; }
|
||||||
|
|
||||||
# Vérifier le niveau de verbosité actuel par rapport à l'argument. $1 peut valoir:
|
# Vérifier le niveau de verbosité actuel par rapport à l'argument. $1 peut valoir:
|
||||||
# -Q retourner true si on peut afficher les messages d'erreur
|
# -Q retourner true si on peut afficher les messages d'erreur
|
||||||
# -q retourner true si on peut afficher les messages d'avertissement
|
# -q retourner true si on peut afficher les messages d'avertissement
|
||||||
|
@ -201,6 +146,7 @@ function get_verbosity_option() {
|
||||||
5) echo --debug;;
|
5) echo --debug;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# Vérifier le niveau d'interaction autorisé par rapport à l'argument. Par
|
# Vérifier le niveau d'interaction autorisé par rapport à l'argument. Par
|
||||||
# exemple, 'check_interaction -y' signifie "Il ne faut interagir avec
|
# exemple, 'check_interaction -y' signifie "Il ne faut interagir avec
|
||||||
# l'utilisateur qu'à partir du niveau d'interaction -y. Suis-je dans les
|
# l'utilisateur qu'à partir du niveau d'interaction -y. Suis-je dans les
|
||||||
|
|
|
@ -11,18 +11,15 @@ args=(
|
||||||
)
|
)
|
||||||
parse_args "$@"; set -- "${args[@]}"
|
parse_args "$@"; set -- "${args[@]}"
|
||||||
|
|
||||||
eerror "erreur"
|
#ebanner "banner"
|
||||||
ewarn "warning"
|
|
||||||
enote "note"
|
|
||||||
ebanner "banner"
|
|
||||||
eimportant "important"
|
eimportant "important"
|
||||||
eattention "attention"
|
eattention "attention"
|
||||||
|
eerror "error"
|
||||||
|
ewarn "warn"
|
||||||
|
enote "note"
|
||||||
einfo "info"
|
einfo "info"
|
||||||
eecho "vanilla"
|
eecho "echo"
|
||||||
edebug "debug"
|
edebug "debug"
|
||||||
esection
|
|
||||||
|
|
||||||
etitle "title"
|
|
||||||
|
|
||||||
estep "step"
|
estep "step"
|
||||||
estepe "stepe"
|
estepe "stepe"
|
||||||
|
@ -38,7 +35,108 @@ line1
|
||||||
line2
|
line2
|
||||||
line3" | elinedots "lines"
|
line3" | elinedots "lines"
|
||||||
|
|
||||||
eend
|
|
||||||
|
|
||||||
esection "section"
|
esection "section"
|
||||||
eecho "content"
|
eecho "content"
|
||||||
|
|
||||||
|
etitle "title0"
|
||||||
|
etitle "title1"
|
||||||
|
eecho "print under title1"
|
||||||
|
eend
|
||||||
|
eecho "print under title0"
|
||||||
|
eend
|
||||||
|
|
||||||
|
edesc "action avec step"
|
||||||
|
action "action avec step"
|
||||||
|
estep "step"
|
||||||
|
asuccess "action success"
|
||||||
|
|
||||||
|
action "action avec step"
|
||||||
|
estep "step"
|
||||||
|
afailure "action failure"
|
||||||
|
|
||||||
|
action "action avec step"
|
||||||
|
estep "step"
|
||||||
|
adone "action neutral"
|
||||||
|
|
||||||
|
edesc "actions sans step"
|
||||||
|
action "action sans step"
|
||||||
|
asuccess "action success"
|
||||||
|
|
||||||
|
action "action sans step"
|
||||||
|
afailure "action failure"
|
||||||
|
|
||||||
|
action "action sans step"
|
||||||
|
adone "action neutral"
|
||||||
|
|
||||||
|
edesc "actions imbriquées"
|
||||||
|
action "action0"
|
||||||
|
action "action1"
|
||||||
|
action "action2"
|
||||||
|
asuccess "action2 success"
|
||||||
|
asuccess "action1 success"
|
||||||
|
asuccess "action0 success"
|
||||||
|
|
||||||
|
edesc "action avec step, sans messages"
|
||||||
|
action "action avec step, sans messages, success"
|
||||||
|
estep "step"
|
||||||
|
asuccess
|
||||||
|
|
||||||
|
action "action avec step, sans messages, failure"
|
||||||
|
estep "step"
|
||||||
|
afailure
|
||||||
|
|
||||||
|
action "action avec step, sans messages, done"
|
||||||
|
estep "step"
|
||||||
|
adone
|
||||||
|
|
||||||
|
edesc "action sans step, sans messages"
|
||||||
|
action "action sans step, sans messages, success"
|
||||||
|
asuccess
|
||||||
|
|
||||||
|
action "action sans step, sans messages, failure"
|
||||||
|
afailure
|
||||||
|
|
||||||
|
action "action sans step, sans messages, done"
|
||||||
|
adone
|
||||||
|
|
||||||
|
edesc "actions imbriquées, sans messages"
|
||||||
|
action "action0"
|
||||||
|
action "action1"
|
||||||
|
action "action2"
|
||||||
|
asuccess
|
||||||
|
asuccess
|
||||||
|
asuccess
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
#ebanner $'multi-line\nbanner'
|
||||||
|
|
||||||
|
esection $'multi-line\nsection'
|
||||||
|
etitle $'multi-line\ntitle'
|
||||||
|
etitle $'another\ntitle'
|
||||||
|
edesc $'multi-line\ndesc'
|
||||||
|
|
||||||
|
#ebanner $'multi-line\nbanner'
|
||||||
|
eimportant $'multi-line\nimportant'
|
||||||
|
eattention $'multi-line\nattention'
|
||||||
|
eerror $'multi-line\nerror'
|
||||||
|
ewarn $'multi-line\nwarn'
|
||||||
|
enote $'multi-line\nnote'
|
||||||
|
einfo $'multi-line\ninfo'
|
||||||
|
eecho $'multi-line\necho'
|
||||||
|
edebug $'multi-line\ndebug'
|
||||||
|
|
||||||
|
action $'multi-line\naction'
|
||||||
|
asuccess
|
||||||
|
action $'multi-line\naction'
|
||||||
|
estep $'multi-line\nstep'
|
||||||
|
afailure
|
||||||
|
action $'multi-line\naction'
|
||||||
|
estep $'multi-line\nstep'
|
||||||
|
asuccess $'multi-line\nsuccess'
|
||||||
|
action $'multi-line\naction'
|
||||||
|
estep $'multi-line\nstep'
|
||||||
|
adone $'multi-line\ndone'
|
||||||
|
|
||||||
|
eend
|
||||||
|
eend
|
||||||
|
|
27
load.sh
27
load.sh
|
@ -96,6 +96,22 @@ function nulib__define_functions() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function nulib__load:() {
|
||||||
|
local nl__module nl__nulibdir nl__found
|
||||||
|
[ $# -gt 0 ] || set DEFAULTS
|
||||||
|
|
||||||
|
for nl__module in "$@"; do
|
||||||
|
nl__found=
|
||||||
|
for nl__nulibdir in "${NULIBDIRS[@]}"; do
|
||||||
|
if [ -f "$nl__nulibdir/$nl__module.sh" ]; then
|
||||||
|
source "$nl__nulibdir/$nl__module.sh" || die
|
||||||
|
nl__found=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
[ -n "$nl__found" ] || die "nulib: unable to find module $nl__module in (${NULIBDIRS[*]})"
|
||||||
|
done
|
||||||
|
}
|
||||||
function nulib__require:() {
|
function nulib__require:() {
|
||||||
local nr__module nr__nulibdir nr__found
|
local nr__module nr__nulibdir nr__found
|
||||||
[ $# -gt 0 ] || set DEFAULTS
|
[ $# -gt 0 ] || set DEFAULTS
|
||||||
|
@ -140,11 +156,18 @@ function nulib__require:() {
|
||||||
NULIB_MODULE="$nr__orig_module"
|
NULIB_MODULE="$nr__orig_module"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# désactiver set -x
|
||||||
|
NULIB__DISABLE_SET_X='local NULIB__SET_X; [ -z "$NULIB_NO_DISABLE_SET_X" ] && [[ $- == *x* ]] && { set +x; NULIB__SET_X=1; }'
|
||||||
|
NULIB__ENABLE_SET_X='[ -n "$NULIB__SET_X" ] && set -x'
|
||||||
|
# désactiver set -x de manière réentrante
|
||||||
|
NULIB__RDISABLE_SET_X='[ -z "$NULIB_NO_DISABLE_SET_X" ] && [[ $- == *x* ]] && { set +x; local NULIB_REQUIRE_SET_X=1; }; if [ -n "$NULIB_REQUIRE_SET_X" ]; then [ -n "$NULIB_REQUIRE_SET_X_RL1" ] || local NULIB_REQUIRE_SET_X_RL1; local NULIB_REQUIRE_SET_X_RL2=$RANDOM; [ -n "$NULIB_REQUIRE_SET_X_RL1" ] || NULIB_REQUIRE_SET_X_RL1=$NULIB_REQUIRE_SET_X_RL2; fi'
|
||||||
|
NULIB__RENABLE_SET_X='[ -n "$NULIB_REQUIRE_SET_X" -a "$NULIB_REQUIRE_SET_X_RL1" == "$NULIB_REQUIRE_SET_X_RL2" ] && set -x'
|
||||||
|
|
||||||
function require:() {
|
function require:() {
|
||||||
[ -z "$NULIB_NO_DISABLE_SET_X" ] && [[ $- == *x* ]] && { set +x; local NULIB_REQUIRE_SET_X=1; }; if [ -n "$NULIB_REQUIRE_SET_X" ]; then [ -n "$NULIB_REQUIRE_SET_X_RL1" ] || local NULIB_REQUIRE_SET_X_RL1; local NULIB_REQUIRE_SET_X_RL2=$RANDOM; [ -n "$NULIB_REQUIRE_SET_X_RL1" ] || NULIB_REQUIRE_SET_X_RL1=$NULIB_REQUIRE_SET_X_RL2; fi # désactiver set -x de manière réentrante
|
eval "$NULIB__RDISABLE_SET_X"
|
||||||
nulib__define_functions
|
nulib__define_functions
|
||||||
nulib__require: "$@"
|
nulib__require: "$@"
|
||||||
[ -n "$NULIB_REQUIRE_SET_X" -a "$NULIB_REQUIRE_SET_X_RL1" == "$NULIB_REQUIRE_SET_X_RL2" ] && set -x
|
eval "$NULIB__RENABLE_SET_X"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue