Intégration de la branche release-2.7.0

This commit is contained in:
Jephté Clain 2015-07-17 22:03:31 +04:00
commit b0444d7b05
7 changed files with 162 additions and 120 deletions

View File

@ -1,3 +1,11 @@
## Version 2.7.0 du 17/07/2015-22:03
7e2a6c3 update-nutools ignore par défaut l'eventuel proxy défini par http_proxy
13215c3 apacheconfig: améliorer l'affichage de l'aide et support du répertoire .apacheconfig
27f5f7a pyulib honore maintenant UTOOLS_NO_COLORS
3ee6cb4 diminuer l'indentation pour les fonctions e*
d4ac5f7 modifier l'affichage des fonction e*
## Version 2.6.0 du 10/07/2015-17:32 ## Version 2.6.0 du 10/07/2015-17:32
efa6b3a Intégration de la branche ftps efa6b3a Intégration de la branche ftps

View File

@ -1 +1 @@
2.6.0 2.7.0

View File

@ -10,6 +10,14 @@ USAGE
$scriptname [options] $scriptname [options]
OPTIONS OPTIONS
--help-template
Afficher toutes les options qui concernent la gestion des templates
--help-files
Afficher une description des fichiers qui peuvent se trouver dans le
répertoire local
--help-deploy
Afficher l'aide sur les options avancées pour le déploiement
Les options suivantes servent à mettre à jour la configuration apache dans un Les options suivantes servent à mettre à jour la configuration apache dans un
répertoire de référence appelé répertoire local, avant son déploiement. répertoire de référence appelé répertoire local, avant son déploiement.
-d, --destdir DESTDIR -d, --destdir DESTDIR
@ -21,35 +29,62 @@ répertoire de référence appelé répertoire local, avant son déploiement.
Copier les templates spécifiés dans le répertoire local s'il n'y Copier les templates spécifiés dans le répertoire local s'il n'y
existent pas déjà. Les templates ayant l'extension '.template' doivent existent pas déjà. Les templates ayant l'extension '.template' doivent
être demandés explicitement. Sinon, ils sont ignorés. être demandés explicitement. Sinon, ils sont ignorés.
-z, --unmerge
Supprimer les fichiers du répertoire local s'ils n'ont pas été modifiés
par rapport aux templates.
-C, --clean
Supprimer les répertoires vides dans le répertoire local. Peut être
utile après -z
-g, --diff
Afficher les différences entre les templates et les fichiers du
répertoire local.
--list-vars
Afficher pour information les valeurs par défaut des variables de
template.
--write-vars
Ecrire dans le fichier .apacheconfig les valeurs par défaut des
variables, ce qui permet après édition du fichier d'éviter de les
spécifier à chaque fois avec l'option -v
Le fichier n'est pas écrasé s'il existe déjà.
-v, --var NAME=VALUE
Spécifier la valeur d'une variable. Il est possible de spécifier des
valeurs qui ne sont pas dans la liste prédéfinie. Par défaut, il s'agit
d'une variable de template, utilisée pour mettre à jour la copie locale
d'un template avec l'option --merge
Dans le fichier .apacheconfig, les valeurs des variables de template
n'est pas censée changer. Lors de la copie des templates avec --merge,
chaque occurence de @@VAR@@ dans un template est remplacée dans la copie
locale par la valeur de la variable de template VAR
Les variables dynamiques sont remplacées lors du déploiement du fichier
avec l'option --update
Les options suivantes permettent de déployer les fichiers du répertoire local.
IMPORTANT: les fonctions de déploiement ne sont pour le moment supportées que
sur debian
-u, --update, --deploy
Mettre à jour la configuration système à partir du répertoire local.
Lors du déploiement de la configuration, les valeurs de variables
dynamiques sont remplacées dans les fichiers destination.
-r, --certsdir CERTSDIR
Spécifier le cas échéant le répertoire contenant les certificats à
déployer."
}
function __templatectl_display_help() { display_help; }
function display_template_help() {
uecho "\
Les options suivantes servent à mettre à jour la configuration apache dans un
répertoire de référence appelé répertoire local, avant son déploiement.
-d, --destdir DESTDIR
Spécifier le répertoire local dans lequel copier la configuration apache.
-l, --list
Lister les templates disponibles.
-m, --merge
Copier les templates spécifiés dans le répertoire local s'il n'y existent
pas déjà. Les templates ayant l'extension '.template' doivent être demandés
explicitement. Sinon, ils sont ignorés.
-z, --unmerge
Supprimer les fichiers du répertoire local s'ils n'ont pas été modifiés par
rapport aux templates.
-C, --clean
Supprimer les répertoires vides dans le répertoire local. Peut être utile
après -z
-g, --diff
Afficher les différences entre les templates et les fichiers du répertoire
local.
--list-vars
Afficher pour information les valeurs par défaut des variables de template.
--write-vars
Ecrire dans le fichier .apacheconfig les valeurs par défaut des variables,
ce qui permet après édition du fichier d'éviter de les spécifier à chaque
fois avec l'option -v
Le fichier n'est pas écrasé s'il existe déjà.
-v, --var NAME=VALUE
Spécifier la valeur d'une variable. Il est possible de spécifier des valeurs
qui ne sont pas dans la liste prédéfinie. Par défaut, c'est une variable de
template, utilisée pour mettre à jour la copie locale d'un template avec
l'option --merge
Dans le fichier .apacheconfig, les valeurs des variables de template n'est
pas censée changer. Lors de la copie des templates avec --merge, chaque
occurence de @@VAR@@ dans un template est remplacée dans la copie locale par
la valeur de la variable de template VAR
Les variables dynamiques sont remplacées lors du déploiement du fichier avec
l'option --update"
}
function display_files_help() {
uecho "\
Le répertoire local peut contenir les fichiers et répertoires suivants, qui sont Le répertoire local peut contenir les fichiers et répertoires suivants, qui sont
tous optionnels: tous optionnels:
@ -83,48 +118,38 @@ tous optionnels:
Les fichiers de ce répertoire sont de la forme NAME-certs.conf et chacun d'eux Les fichiers de ce répertoire sont de la forme NAME-certs.conf et chacun d'eux
correspondant en principe à un fichier NAME.ssl.conf dans sites/ correspondant en principe à un fichier NAME.ssl.conf dans sites/
- RewriteRules/ le répertoire qui contient la configuration de réécriture. Tous - RewriteRules/ le répertoire qui contient la configuration de réécriture. Tous
les fichiers RewriteRules*.conf de ce répertoire sont copiés dans /etc/apache2 les fichiers RewriteRules*.conf de ce répertoire sont copiés dans /etc/apache2"
}
function display_deploy_help() {
uecho "\
Les options suivantes sont des options avancées pour le déploiment des fichiers:
Les options suivantes permettent de déployer les fichiers du répertoire local. --confdir CONFDIR
IMPORTANT: les fonctions de déploiement ne sont pour le moment supportées que Spécifier l'emplacement des fichiers de configuration apache ainsi que les
sur debian fichiers 'modules.conf' et 'sites.conf'. Par défaut, prendre le répertoire
-u, --update, --deploy local.
Mettre à jour la configuration système à partir du répertoire local. --modulesdir MODULESDIR
Lors du déploiement de la configuration, les valeurs de variables
dynamiques sont remplacées dans les fichiers destination.
-r, --certsdir CERTSDIR
Spécifier le cas échéant le répertoire contenant les certificats à
déployer.
OPTIONS AVANCEES
--confdir CONFDIR
Spécifier l'emplacement des fichiers de configuration apache ainsi que
les fichiers 'modules.conf' et 'sites.conf'. Par défaut, prendre le
répertoire local.
--modulesdir MODULESDIR
Spécifier l'emplacement des fichiers de configuration des modules. Par Spécifier l'emplacement des fichiers de configuration des modules. Par
défaut, utiliser DESTDIR/modules si ce répertoire existe. défaut, utiliser DESTDIR/modules si ce répertoire existe.
--sitesdir SITESDIR --sitesdir SITESDIR
Spécifier l'emplacement des fichiers de configuration des sites. Par Spécifier l'emplacement des fichiers de configuration des sites. Par défaut,
défaut, utiliser DESTDIR/sites si ce répertoire existe. utiliser DESTDIR/sites si ce répertoire existe.
--cgibindir CGIBINDIR --cgibindir CGIBINDIR
Spécifier l'emplacement des scripts cgi à installer. Par défaut, Spécifier l'emplacement des scripts cgi à installer. Par défaut, utiliser
utiliser DESTDIR/cgi-bin si ce répertoire existe. DESTDIR/cgi-bin si ce répertoire existe.
--wwwdir WWWDIR --wwwdir WWWDIR
Spécifier l'emplacement des fichiers du serveur web. Par défaut, Spécifier l'emplacement des fichiers du serveur web. Par défaut, utiliser
utiliser DESTDIR/www si ce répertoire existe. DESTDIR/www si ce répertoire existe.
--certsconfdir CERTSCONFDIR --certsconfdir CERTSCONFDIR
Spécifier l'emplacement des fichiers de configuration des certificats. Spécifier l'emplacement des fichiers de configuration des certificats. Par
Par défaut, utiliser DESTDIR/certsconf si ce répertoire existe. Il faut défaut, utiliser DESTDIR/certsconf si ce répertoire existe. Il faut alors
alors spécifier aussi CERTSDIR, l'emplacement des certificats à spécifier aussi CERTSDIR, l'emplacement des certificats à installer.
installer. --rrdir RRDIR
--rrdir RRDIR Spécifier l'emplacement des fichiers de réécriture. Par défaut, utiliser
Spécifier l'emplacement des fichiers de réécriture. Par défaut, DESTDIR/RewriteRules si ce répertoire existe.
utiliser DESTDIR/RewriteRules si ce répertoire existe. --no-restart
--no-restart
Ne pas redémarrer apache en cas de modification de la configuration" Ne pas redémarrer apache en cas de modification de la configuration"
} }
function __templatectl_display_help() { display_help; }
# Valeurs par défaut des variables de template # Valeurs par défaut des variables de template
DEFAULT_TEMPLATE_VARS=( DEFAULT_TEMPLATE_VARS=(
@ -144,7 +169,7 @@ function parent_apacheconfig() {
local dir="$(pwd)" dirname local dir="$(pwd)" dirname
while true; do while true; do
dirname="$(basename -- "$dir")" setx dirname=basename -- "$dir"
if [ "$dir" == / ]; then if [ "$dir" == / ]; then
# s'arrêter à la racine # s'arrêter à la racine
return 1 return 1
@ -154,8 +179,11 @@ function parent_apacheconfig() {
elif [ "$dirname" == apacheconfig ]; then elif [ "$dirname" == apacheconfig ]; then
echo "$dir" echo "$dir"
return 0 return 0
elif [ "$dirname" == .apacheconfig ]; then
echo "$dir"
return 0
fi fi
dir="$(dirname -- "$dir")" setx dir=dirname -- "$dir"
done done
} }
@ -204,6 +232,9 @@ __certsconfdir=
__rrdir= __rrdir=
__restart=1 __restart=1
__TEMPLATECTL_SUPPLOPTS=( __TEMPLATECTL_SUPPLOPTS=(
--help-template '$exit_with display_template_help'
--help-files '$exit_with display_files_help'
--help-deploy '$exit_with display_deploy_help'
-v:,--var: __vars -v:,--var: __vars
--list-vars __list_vars=1 --list-vars __list_vars=1
--write-vars __write_vars=1 --write-vars __write_vars=1
@ -219,8 +250,7 @@ __TEMPLATECTL_SUPPLOPTS=(
--restart __restart=1 --restart __restart=1
--no-restart __restart= --no-restart __restart=
) )
__templatectl_parseopts "$@" && \ __templatectl_parseopts "$@" && set -- "${args[@]}" || die "$args"
set -- "${args[@]}" || die "$args"
# répertoire de template # répertoire de template
setx __templatectl_srcdir=templatesrc apacheconfig setx __templatectl_srcdir=templatesrc apacheconfig
@ -230,6 +260,8 @@ __autocreate=
if [ -z "$__templatectl_destdir" ]; then if [ -z "$__templatectl_destdir" ]; then
if [ -d apacheconfig ]; then if [ -d apacheconfig ]; then
__templatectl_destdir=apacheconfig __templatectl_destdir=apacheconfig
elif [ -d .apacheconfig ]; then
__templatectl_destdir=.apacheconfig
elif setx __templatectl_destdir=parent_apacheconfig; then elif setx __templatectl_destdir=parent_apacheconfig; then
estepn "Sélection automatique de $(ppath "$__templatectl_destdir")" estepn "Sélection automatique de $(ppath "$__templatectl_destdir")"
elif [ -e apacheconfig ]; then elif [ -e apacheconfig ]; then

View File

@ -40,7 +40,7 @@ OUT_ISATTY = _isatty(OUT)
ERR = sys.stderr ERR = sys.stderr
ERR_ISATTY = _isatty(ERR) ERR_ISATTY = _isatty(ERR)
USE_COLORS = OUT_ISATTY and ERR_ISATTY USE_COLORS = OUT_ISATTY and ERR_ISATTY and not os.environ.get('UTOOLS_NO_COLORS', '')
RESET = '0' RESET = '0'
BLACK = '30'; RED = '31'; GREEN = '32'; YELLOW = '33' BLACK = '30'; RED = '31'; GREEN = '32'; YELLOW = '33'
BLUE = '34'; MAGENTA = '35'; CYAN = '36'; WHITE = '37' BLUE = '34'; MAGENTA = '35'; CYAN = '36'; WHITE = '37'
@ -210,17 +210,17 @@ def eerror(msg=None, flush=None, show_tb=False):
if msg is None or show_tb: if msg is None or show_tb:
cls, obj, tb = sys.exc_info() cls, obj, tb = sys.exc_info()
msg, nl = __add_suffix(msg, cls, obj, tb, show_tb) msg, nl = __add_suffix(msg, cls, obj, tb, show_tb)
eprint((('error: ', 'r,@'), msg), V_ERROR, nl, flush, ERR) eprint((('E ', 'r,@'), msg), V_ERROR, nl, flush, ERR)
def ewarn(msg, flush=None): eprint((('warning: ', 'y,@'), msg), V_WARNING, True, flush, ERR) def ewarn(msg, flush=None): eprint((('W ', 'y,@'), msg), V_WARNING, True, flush, ERR)
def enote(msg, flush=None): eprint((('note: ', 'g,@'), msg), V_INFO, True, flush, ERR) def enote(msg, flush=None): eprint((('N ', 'g,@'), msg), V_INFO, True, flush, ERR)
def eimportant(msg, flush=None): eprint((('important: ', 'r,@'), msg), V_ERROR, True, flush, ERR) def eimportant(msg, flush=None): eprint((('! ', 'r,@'), msg), V_ERROR, True, flush, ERR)
def eattention(msg, flush=None): eprint((('attention: ', 'y,@'), msg), V_WARNING, True, flush, ERR) def eattention(msg, flush=None): eprint((('* ', 'y,@'), msg), V_WARNING, True, flush, ERR)
def einfo(msg, flush=None): eprint((('info: ', 'b,@'), msg), V_INFO, True, flush, ERR) def einfo(msg, flush=None): eprint((('I ', 'b,@'), msg), V_INFO, True, flush, ERR)
def eecho(msg, flush=None): eprint(msg, V_INFO, True, flush, ERR) def eecho(msg, flush=None): eprint(msg, V_INFO, True, flush, ERR)
def eecho_(msg, flush=None): eprint(msg, V_INFO, False, flush, ERR) def eecho_(msg, flush=None): eprint(msg, V_INFO, False, flush, ERR)
def edebug(msg, flush=None): eprint((('debug: ', 'w,@'), msg), V_DEBUG, True, flush, ERR) def edebug(msg, flush=None): eprint((('D ', 'w,@'), msg), V_DEBUG, True, flush, ERR)
def get_ntlevel(): return len(get_tlevel()) / 4 def get_ntlevel(): return len(get_tlevel()) / 2
def set_ntlevel(l): set_tlevel(l * ' ') def set_ntlevel(l): set_tlevel(l * ' ')
def inc_ntlevel(): def inc_ntlevel():
if get_estack() != '': set_ntlevel(get_ntlevel() + 1) if get_estack() != '': set_ntlevel(get_ntlevel() + 1)
@ -262,19 +262,19 @@ def etitle(title, func_or_result=None, *args, **kw):
estack = get_estack() estack = get_estack()
inc_ntlevel() inc_ntlevel()
add_estack('t') add_estack('t')
eprint((('+++ ', 'b,@'), (title, 'b,@,_')), V_INFO, True, True, ERR) eprint((('T ', 'b,@'), (title, 'b,@,_')), V_INFO, True, True, ERR)
if func_or_result is not None: eend(func_or_result, *args, **kw) if func_or_result is not None: eend(func_or_result, *args, **kw)
def estep(msg, func_or_result=None, flush=None): def estep(msg, func_or_result=None, flush=None):
r, msg, exc_info = _result(msg, func_or_result) r, msg, exc_info = _result(msg, func_or_result)
eprint((('* ', 'w,@'), msg), V_INFO, True, flush, ERR) eprint((('. ', 'w,@'), msg), V_INFO, True, flush, ERR)
_raise(exc_info) _raise(exc_info)
def estep_(msg, func_or_result=None, flush=None): def estep_(msg, func_or_result=None, flush=None):
r, msg, exc_info = _result(msg, func_or_result) r, msg, exc_info = _result(msg, func_or_result)
eprint((('* ', 'w,@'), msg), V_INFO, False, flush, ERR) eprint((('. ', 'w,@'), msg), V_INFO, False, flush, ERR)
_raise(exc_info) _raise(exc_info)
def ebegin(title, func_or_result=None, *args, **kw): def ebegin(title, func_or_result=None, *args, **kw):
add_estack('b') add_estack('b')
eprint((('* ', 'w,@'), title + ': '), V_INFO, False, True, ERR) eprint((('. ', 'w,@'), title + ': '), V_INFO, False, True, ERR)
if func_or_result is not None: eend(func_or_result, *args, **kw) if func_or_result is not None: eend(func_or_result, *args, **kw)
def _edoto(): eprint('.', V_INFO, False, True, ERR) def _edoto(): eprint('.', V_INFO, False, True, ERR)
def _edotx(): eprint((('x', 'r,@'),), V_INFO, False, True, ERR) def _edotx(): eprint((('x', 'r,@'),), V_INFO, False, True, ERR)

View File

@ -2966,9 +2966,9 @@ function __indent() {
fi fi
} }
# fonctions à surcharger pour modifier la façon dont les messages sont affichés # fonctions à surcharger pour modifier la façon dont les messages sont affichés
function __eerror() { tooenc "$(__edate)${__tlevel}* error: $(__indent "$1")"; } function __eerror() { tooenc "$(__edate)${__tlevel}E $(__indent "$1")"; }
function __ewarn() { tooenc "$(__edate)${__tlevel}* warning: $(__indent "$1")"; } function __ewarn() { tooenc "$(__edate)${__tlevel}W $(__indent "$1")"; }
function __enote() { tooenc "$(__edate)${__tlevel}* note: $(__indent "$1")"; } function __enote() { tooenc "$(__edate)${__tlevel}N $(__indent "$1")"; }
function __ebanner() { function __ebanner() {
local maxi="${COLUMNS:-80}" local maxi="${COLUMNS:-80}"
local -a lines local -a lines
@ -2990,24 +2990,24 @@ function __ebanner() {
done done
tooenc "$psfix" tooenc "$psfix"
} }
function __eimportant() { tooenc "$(__edate)${__tlevel}* important: $(__indent "$1")"; } function __eimportant() { tooenc "$(__edate)${__tlevel}! $(__indent "$1")"; }
function __eattention() { tooenc "$(__edate)${__tlevel}* attention: $(__indent "$1")"; } function __eattention() { tooenc "$(__edate)${__tlevel}* $(__indent "$1")"; }
function __einfo() { tooenc "$(__edate)${__tlevel}* info: $(__indent "$1")"; } function __einfo() { tooenc "$(__edate)${__tlevel}I $(__indent "$1")"; }
function __eecho() { tooenc "$(__edate)${__tlevel}$(__indent "$1")"; } function __eecho() { tooenc "$(__edate)${__tlevel}$(__indent "$1")"; }
function __eecho_() { tooenc_ "$(__edate)${__tlevel}$(__indent "$1")"; } function __eecho_() { tooenc_ "$(__edate)${__tlevel}$(__indent "$1")"; }
function __edebug() { tooenc "$(__edate)${__tlevel}* debug: $(__indent "$1")"; } function __edebug() { tooenc "$(__edate)${__tlevel}D $(__indent "$1")"; }
function __estep() { tooenc "$(__edate)${__tlevel}* $(__indent "$1")"; } function __estep() { tooenc "$(__edate)${__tlevel}. $(__indent "$1")"; }
function __estepe() { __estep "$@"; } function __estepe() { __estep "$@"; }
function __estepw() { __estep "$@"; } function __estepw() { __estep "$@"; }
function __estepn() { __estep "$@"; } function __estepn() { __estep "$@"; }
function __estepi() { __estep "$@"; } function __estepi() { __estep "$@"; }
function __estep_() { tooenc_ "$(__edate)${__tlevel}* $(__indent "$1")"; } function __estep_() { tooenc_ "$(__edate)${__tlevel}. $(__indent "$1")"; }
function __estepe_() { __estep_ "$@"; } function __estepe_() { __estep_ "$@"; }
function __estepw_() { __estep_ "$@"; } function __estepw_() { __estep_ "$@"; }
function __estepn_() { __estep_ "$@"; } function __estepn_() { __estep_ "$@"; }
function __estepi_() { __estep_ "$@"; } function __estepi_() { __estep_ "$@"; }
function __etitle() { tooenc "$(__edate)${__tlevel}+++ $(__indent "$1")"; } function __etitle() { tooenc "$(__edate)${__tlevel}T $(__indent "$1")"; }
function __ebegin() { tooenc_ "$(__edate)${__tlevel}* $(__indent "$1"): "; } function __ebegin() { tooenc_ "$(__edate)${__tlevel}. $(__indent "$1"): "; }
function __edoto() { echo_ "."; } function __edoto() { echo_ "."; }
function __edotw() { echo_ "w"; } function __edotw() { echo_ "w"; }
function __edotx() { echo_ "x"; } function __edotx() { echo_ "x"; }

View File

@ -67,9 +67,9 @@ function __set_no_colors() {
} }
__set_no_colors __set_no_colors
function __eerror() { tooenc "$(__edate)${__tlevel}${COULEUR_ROUGE}* error:${COULEUR_NORMALE} $(__indent "$1")"; } function __eerror() { tooenc "$(__edate)${__tlevel}${COULEUR_ROUGE}E${COULEUR_NORMALE} $(__indent "$1")"; }
function __ewarn() { tooenc "$(__edate)${__tlevel}${COULEUR_JAUNE}* warning:${COULEUR_NORMALE} $(__indent "$1")"; } function __ewarn() { tooenc "$(__edate)${__tlevel}${COULEUR_JAUNE}W${COULEUR_NORMALE} $(__indent "$1")"; }
function __enote() { tooenc "$(__edate)${__tlevel}${COULEUR_VERTE}* note:${COULEUR_NORMALE} $(__indent "$1")"; } function __enote() { tooenc "$(__edate)${__tlevel}${COULEUR_VERTE}N${COULEUR_NORMALE} $(__indent "$1")"; }
function __ebanner() { function __ebanner() {
local maxi="${COLUMNS:-80}" local maxi="${COLUMNS:-80}"
local -a lines local -a lines
@ -91,22 +91,22 @@ function __ebanner() {
done done
tooenc "$psfix$COULEUR_NORMALE" tooenc "$psfix$COULEUR_NORMALE"
} }
function __eimportant() { tooenc "$(__edate)${__tlevel}${COULEUR_ROUGE}* important:${COULEUR_NORMALE} $(__indent "$1")"; } function __eimportant() { tooenc "$(__edate)${__tlevel}${COULEUR_ROUGE}!${COULEUR_NORMALE} $(__indent "$1")"; }
function __eattention() { tooenc "$(__edate)${__tlevel}${COULEUR_JAUNE}* attention:${COULEUR_NORMALE} $(__indent "$1")"; } function __eattention() { tooenc "$(__edate)${__tlevel}${COULEUR_JAUNE}*${COULEUR_NORMALE} $(__indent "$1")"; }
function __einfo() { tooenc "$(__edate)${__tlevel}${COULEUR_BLEUE}* info:${COULEUR_NORMALE} $(__indent "$1")"; } function __einfo() { tooenc "$(__edate)${__tlevel}${COULEUR_BLEUE}I${COULEUR_NORMALE} $(__indent "$1")"; }
function __edebug() { tooenc "$(__edate)${__tlevel}${COULEUR_BLANCHE}* debug:${COULEUR_NORMALE} $(__indent "$1")"; } function __edebug() { tooenc "$(__edate)${__tlevel}${COULEUR_BLANCHE}D${COULEUR_NORMALE} $(__indent "$1")"; }
function __estep() { tooenc "$(__edate)${__tlevel}${COULEUR_BLANCHE}*${COULEUR_NORMALE} $(__indent "$1")"; } function __estep() { tooenc "$(__edate)${__tlevel}${COULEUR_BLANCHE}.${COULEUR_NORMALE} $(__indent "$1")"; }
function __estepe() { tooenc "$(__edate)${__tlevel}${COULEUR_ROUGE}*${COULEUR_NORMALE} $(__indent "$1")"; } function __estepe() { tooenc "$(__edate)${__tlevel}${COULEUR_ROUGE}.${COULEUR_NORMALE} $(__indent "$1")"; }
function __estepw() { tooenc "$(__edate)${__tlevel}${COULEUR_JAUNE}*${COULEUR_NORMALE} $(__indent "$1")"; } function __estepw() { tooenc "$(__edate)${__tlevel}${COULEUR_JAUNE}.${COULEUR_NORMALE} $(__indent "$1")"; }
function __estepn() { tooenc "$(__edate)${__tlevel}${COULEUR_VERTE}*${COULEUR_NORMALE} $(__indent "$1")"; } function __estepn() { tooenc "$(__edate)${__tlevel}${COULEUR_VERTE}.${COULEUR_NORMALE} $(__indent "$1")"; }
function __estepi() { tooenc "$(__edate)${__tlevel}${COULEUR_BLEUE}*${COULEUR_NORMALE} $(__indent "$1")"; } function __estepi() { tooenc "$(__edate)${__tlevel}${COULEUR_BLEUE}.${COULEUR_NORMALE} $(__indent "$1")"; }
function __estep_() { tooenc_ "$(__edate)${__tlevel}${COULEUR_BLANCHE}*${COULEUR_NORMALE} $(__indent "$1")"; } function __estep_() { tooenc_ "$(__edate)${__tlevel}${COULEUR_BLANCHE}.${COULEUR_NORMALE} $(__indent "$1")"; }
function __estepe_() { tooenc_ "$(__edate)${__tlevel}${COULEUR_ROUGE}*${COULEUR_NORMALE} $(__indent "$1")"; } function __estepe_() { tooenc_ "$(__edate)${__tlevel}${COULEUR_ROUGE}.${COULEUR_NORMALE} $(__indent "$1")"; }
function __estepw_() { tooenc_ "$(__edate)${__tlevel}${COULEUR_JAUNE}*${COULEUR_NORMALE} $(__indent "$1")"; } function __estepw_() { tooenc_ "$(__edate)${__tlevel}${COULEUR_JAUNE}.${COULEUR_NORMALE} $(__indent "$1")"; }
function __estepn_() { tooenc_ "$(__edate)${__tlevel}${COULEUR_VERTE}*${COULEUR_NORMALE} $(__indent "$1")"; } function __estepn_() { tooenc_ "$(__edate)${__tlevel}${COULEUR_VERTE}.${COULEUR_NORMALE} $(__indent "$1")"; }
function __estepi_() { tooenc_ "$(__edate)${__tlevel}${COULEUR_BLEUE}*${COULEUR_NORMALE} $(__indent "$1")"; } function __estepi_() { tooenc_ "$(__edate)${__tlevel}${COULEUR_BLEUE}.${COULEUR_NORMALE} $(__indent "$1")"; }
function __etitle() { tooenc "$(__edate)${__tlevel}${COULEUR_BLEUE}+++ $(get_color _)$(__indent "$1")${COULEUR_NORMALE}"; } function __etitle() { tooenc "$(__edate)${__tlevel}${COULEUR_BLEUE}T $(get_color _)$(__indent "$1")${COULEUR_NORMALE}"; }
function __ebegin() { tooenc_ "$(__edate)${__tlevel}${COULEUR_BLANCHE}*${COULEUR_NORMALE} $(__indent "$1"): "; } function __ebegin() { tooenc_ "$(__edate)${__tlevel}${COULEUR_BLANCHE}.${COULEUR_NORMALE} $(__indent "$1"): "; }
function __edoto() { echo_ "."; } function __edoto() { echo_ "."; }
function __edotw() { echo_ "${COULEUR_JAUNE}w${COULEUR_NORMALE}"; } function __edotw() { echo_ "${COULEUR_JAUNE}w${COULEUR_NORMALE}"; }
function __edotx() { echo_ "${COULEUR_ROUGE}x${COULEUR_NORMALE}"; } function __edotx() { echo_ "${COULEUR_ROUGE}x${COULEUR_NORMALE}"; }

View File

@ -8,6 +8,8 @@ PUB_REPO=http://vcs.univ-reunion.fr/anongit/modules/nutools.git
NAME=nutools NAME=nutools
################################################################################ ################################################################################
[ -z "$update_nutools_use_proxy" ] && export http_proxy=
CURL="$(which curl 2>/dev/null)" CURL="$(which curl 2>/dev/null)"
WGET="$(which wget 2>/dev/null)" WGET="$(which wget 2>/dev/null)"
if [ -n "$NUTOOLS_REPO" ]; then if [ -n "$NUTOOLS_REPO" ]; then