From 9626de8b5f31e5289ee9ccae0f96e3e1c6c7225f Mon Sep 17 00:00:00 2001 From: Doug Le Tough Date: Sun, 26 Nov 2017 11:42:37 +0100 Subject: [PATCH] "MaJ version socle" --- lib/message.lib | 115 +++++++++++++++++++++++++++--------------------- lib/params.lib | 59 ++++++++++++++----------- 2 files changed, 100 insertions(+), 74 deletions(-) diff --git a/lib/message.lib b/lib/message.lib index 6be4e45..93104af 100755 --- a/lib/message.lib +++ b/lib/message.lib @@ -2,8 +2,8 @@ ## Script : message.lib ## Module Puppet : gnc-script_core_dtsi ## Auteur : Emmanuel Confrere -## Date : 29-06-2017 -## Version : 1.2.1 +## Date : 31-08-2017 +## Version : 1.3.5 ## Objet : Gestion des message sur la console et dans les divers fichiers de trace ## ## Fonction : fct_message @@ -37,28 +37,52 @@ # 1.2.0 13-04-2017 - Emmanuel Confrere - Evo : Journalisation du compte d execution dans l historique # 1.2.1 29-06-2017 - Emmanuel Confrere - Ano : Fonctionnement inattendu sous Bash 3.2.25 # la fonction logname ne renvoi rien ? -# 1.2.2 20-11-2017 - Doug Le Tough - Evo : Modification du format de la date afin qu'il soit independant -# de la locale utilisee. +# 1.3.0 07-08-2017 - Emmanuel Confrere - Evo : Optimisation performance - Suppression des comparaisons de chaine. +# Correction Anomalie de l option -debug si mode interactif +# 1.3.1 10-08-2017 - Emmanuel Confrere - Ano : En mode interactif, l option debug ne limite pas l affichage +# en fonction du niveau positionnee sur le shell et celui du +# message ! +# Correction et optimisation du traitement. +# 1.3.2 21/08/2017 - Emmanuel Confrere - Ano : En mode interactif affiche systematiquement les message debug +# de niveau zero. Meme si SH_NIV_DEBUG n est pas initialise ! +# Correction pour que l affichage ne soit effectif que si +# la variable SH_NIV_DEBUG est initialise dans le shell courant. +# 1.3.3 31-08-2017 - Emmanuel Confrere - Ano : Dans le cas d un message contruit avec un tableau de cette facon ${A[@]} +# la libraire considere qu il sagit de plusieur argument et +# tronque le message. +# Pour corriger nous concatenons les messages avec un espace separateur. +# pour eviter la concatenation si cette derniere pose probleme +# presenter le message avec une variable tampon : +# B="${A[@]}" +# fct_message "coucou ${B} ..." +# 1.3.4 31-08-2017 - Emmanuel Confrere - Ano : Introduction d une anomalie ! +# Erreur de syntaxe +# 1.3.5 31-08-2017 - Emmanuel Confrere - Ano : Introduction d une autre ano ! +# Format de sortie modifier (ajout systematique d un espace) ##---------------------------------------------------------------------------- function fct_message { -local L_TEXT="" # Texte a afficher -local L_TIME_STAMP=`date "+%Y%m%d %H:%M:%S"` # Horrodatage a ajouter au texte -local L_EXISTE_REP -local L_NB_PARAM=0 # Nb de parametre de la ligne de commande +local L_TEXT="" # Texte a afficher +local L_TIME_STAMP=`date "+%x %X"` # Horrodatage a ajouter au texte +local L_INTER=0 # Mode interactif 0->non, 1->oui +local L_EXISTE_REP # Controle l existance des repertoire de socle 0->OK 1->NOK +local L_NB_PARAM=0 # Nb de parametre de la ligne de commande local L_TMP local L_TMP2 -local L_OPT # Nom des option -local L_OPTION_DBG="non" # Message de debug -local L_OPTION_SID="" # Affichage du SH_SESSION_IDP a l ecran -local L_NIV_DEBUG=0 # Niveau de trace par defaut 0=aucune -local L_OPTION_CPT="non" # Message de compte rendu -local L_OPTION_HIST="non" # Message pour l historique -local L_COULEUR="" # Couleur du texte avec l option -color -local L_OPTION_COULEUR="non" +local L_OPT # Nom des option +local L_OPTION_DBG=0 # Message de debug +local L_OPTION_SID="" # Affichage du SH_SESSION_IDP a l ecran +local L_NIV_DEBUG=0 # Niveau de trace par defaut 0=aucune +local L_OPTION_CPT=0 # Message de compte rendu +local L_OPTION_HIST=0 # Message pour l historique +local L_COULEUR="" # Couleur du texte avec l option -color +local L_OPTION_COULEUR=0 local L_LIST_COULEUR="noir:0;30 rouge:0;31 vert:0;32 jaune:1;33 bleu:1;34 rose:0;35 cyan:0;36 gris:0;37 orange:0;33 blanc:1;37 " +# - Mode interactif ? +[ -z "${SH_SESSION_ID}" ] && L_INTER=1 + # - recuperation des parametres en entree L_TMP=1 L_NB_PARAM=$# @@ -66,10 +90,10 @@ while [ ${L_TMP} -le ${L_NB_PARAM} ] do L_OPT="$1" case "${L_OPT}" in - "-cpt") L_OPTION_CPT="oui" ;; - "-nolog") L_OPTION_NOLOG="oui" ;; - "-hist") L_OPTION_HIST="oui" ;; - "-color") L_OPTION_COULEUR="oui" + "-cpt") L_OPTION_CPT=1 ;; + "-nolog") L_OPTION_NOLOG=1 ;; + "-hist") L_OPTION_HIST=1 ;; + "-color") L_OPTION_COULEUR=1 L_ARG=`echo $2|tr A-Z a-z` L_TMP2=${L_ARG:0:1} if [ "${L_TMP2}" != "-" ] @@ -77,12 +101,12 @@ do # on recherche la correspondance numerique de la couleur L_COULEUR=`echo ${L_LIST_COULEUR}|sed "s/.*${L_ARG}:\([0-1];3[0-7]\) .*/\1/"` # Si on ne la trouve pas on annule la colorisation - [ ${#L_COULEUR} -ne 4 ] && L_OPTION_COULEUR="non" + [ ${#L_COULEUR} -ne 4 ] && L_OPTION_COULEUR=0 L_TMP=$(( ${L_TMP} + 1 )) shift fi ;; - "-debug") L_OPTION_DBG="oui" + "-debug") L_OPTION_DBG=1 L_ARG="$2" L_TMP2=${L_ARG:0:1} if [ "${L_TMP2}" != "-" ] @@ -100,56 +124,49 @@ do else L_NIV_DEBUG=1 fi - [ ${L_NIV_DEBUG} -gt ${SH_NIV_DEBUG} ] && return 0 ;; - *) L_TEXT="${L_OPT}" ;; + [ ${L_NIV_DEBUG} -gt 0${SH_NIV_DEBUG} -o -z "${SH_NIV_DEBUG}" ] && return 0 ;; + *) [ -z "${L_TEXT}" ] && L_TEXT="${L_OPT}" || L_TEXT="${L_TEXT} ${L_OPT}" ;; esac L_TMP=$(( ${L_TMP} + 1 )) shift done -# - controle que la fonction est lance depuis un shell -if [ -z "${SH_SESSION_ID}" ] +# - Controle du mode d execution ... +if (( ${L_INTER} )) then - # -- La fonction est executer en mode inetractif (Pas dans un shell) - # -- on autorise alors que l affichage sur la sortie standard - SH_AFF_SID="non" - SH_SILENCE="non" - SH_NIV_DEBUG=0 - L_EXISTE_REP=1 + # -- La fonction est executer en mode interactif (Pas dans un script du socle) + # -- on autorise alors uniquement l affichage sur la sortie standard + L_EXISTE_REP=0 else # - Mode shell... # - On control l'existance des repertoires - [ -d ${NC_EXPL_HST} -a -d ${NC_EXPL_LOG} -a -d ${NC_EXPL_CPT} ] && L_EXISTE_REP=0 || L_EXISTE_REP=1 + [ -d ${NC_EXPL_HST} -a -d ${NC_EXPL_LOG} -a -d ${NC_EXPL_CPT} ] && L_EXISTE_REP=1 || L_EXISTE_REP=0 fi # - initialisation des variables [ "${SH_AFF_SID}" = "oui" ] && L_OPTION_SID="[${SH_SESSION_IDP}] " -L_OPTION_NOLOG=${L_OPTION_NOLOG:="non"} +L_OPTION_NOLOG=${L_OPTION_NOLOG:=0} # - Ecriture des messages # - Ajout d une indentation si elle est definie [ -n "${SH_INDENT_MSG}" ] && L_TEXT="${SH_INDENT_MSG} ${L_TEXT}" -if [ "${L_OPTION_DBG}" = "oui" ] +if (( ${L_OPTION_DBG} )) then - [ ${L_EXISTE_REP} -eq 0 ] && echo "${L_TIME_STAMP} [${SH_SESSION_IDP}] : ${L_TEXT}" >> ${SH_FICLOG} + (( ${L_EXISTE_REP} & ! ${L_INTER} )) && echo "${L_TIME_STAMP} [${SH_SESSION_IDP}] : ${L_TEXT}" >> ${SH_FICLOG} + (( ${L_INTER} )) && echo " ${L_TEXT}" else - [ ${L_EXISTE_REP} -eq 0 -a "${L_OPTION_CPT}" = "oui" -a "${L_OPTION_HIST}" = "non" ] && echo "${L_TIME_STAMP} : ${L_TEXT}" >> ${SH_FICCPT} - [ ${L_EXISTE_REP} -eq 0 -a "${L_OPTION_CPT}" = "non" -a "${L_OPTION_HIST}" = "oui" ] && echo "${L_TIME_STAMP} : ${SH_LOGUSER} : ${SH_EXECUSER} : ${L_TEXT}" >> ${SH_FICTRC} - if [ "${L_OPTION_NOLOG}" = "non" ] + (( ${L_EXISTE_REP} & ${L_OPTION_CPT} & ! ${L_OPTION_HIST} )) && echo "${L_TIME_STAMP} : ${L_TEXT}" >> ${SH_FICCPT} + (( ${L_EXISTE_REP} & ! ${L_OPTION_CPT} & ${L_OPTION_HIST} )) && echo "${L_TIME_STAMP} : ${SH_LOGUSER} : ${SH_EXECUSER} : ${L_TEXT}" >> ${SH_FICTRC} + if (( ! ${L_OPTION_NOLOG} )) then - [ ${L_EXISTE_REP} -eq 0 -a "${L_OPTION_CPT}" = "non" -a "${L_OPTION_HIST}" = "non" ] && echo "${L_TIME_STAMP} [${SH_SESSION_IDP}] : ${L_TEXT}" >> ${SH_FICLOG} - [ ${L_EXISTE_REP} -eq 0 -a "${L_OPTION_CPT}" = "oui" -a "${L_OPTION_HIST}" = "oui" ] && echo "${L_TIME_STAMP} : ${L_TEXT}" >> ${SH_FICLOG} + (( ! ${L_INTER} & ${L_EXISTE_REP} & ! ${L_OPTION_CPT} & ! ${L_OPTION_HIST} )) && echo "${L_TIME_STAMP} [${SH_SESSION_IDP}] : ${L_TEXT}" >> ${SH_FICLOG} + (( ! ${L_INTER} & ${L_EXISTE_REP} & ${L_OPTION_CPT} & ${L_OPTION_HIST} )) && echo "${L_TIME_STAMP} : : Option -cpt et -hist ! - ${L_TEXT}" >> ${SH_FICLOG} fi - if [ "${SH_SILENCE}" = "non" -a "${L_OPTION_HIST}" = "non" ] + if [ \( "${SH_SILENCE}" = "non" -a "${L_OPTION_HIST}" = 0 \) -o ${L_INTER} -eq 1 ] then - if [ "${L_OPTION_COULEUR}" = "oui" ] - then - echo -e "${L_OPTION_SID}\033[${L_COULEUR}m${L_TEXT}\033[0m" - else - echo -e "${L_OPTION_SID}${L_TEXT}" - fi + (( ${L_OPTION_COULEUR} )) && echo -e "${L_OPTION_SID}\033[${L_COULEUR}m${L_TEXT}\033[0m" || echo -e "${L_OPTION_SID}${L_TEXT}" fi fi return 0 } -typeset -Ffx fct_message +typeset -Ffx fct_message \ No newline at end of file diff --git a/lib/params.lib b/lib/params.lib index 73fd812..f798e23 100755 --- a/lib/params.lib +++ b/lib/params.lib @@ -2,8 +2,8 @@ ## Script : params.lib ## Module Puppet : gnc-script_core_dtsi ## Auteur : Emmanuel Confrere -## Date : 05-07-2017 -## Version : 2.2.2 +## Date : 26-11-2017 +## Version : 3.0.1 ## Objet : Gere les options passees a un script ## qui ont ete declare dans l entete de ce dernier ## @@ -43,7 +43,12 @@ # 2.2.1 13-04-2017 - Emmanuel Confrere - Ano : Prise en compte de la journalisation avec l option -log # Compatibilite ascendente n etait pas assuree. # 2.2.2 05-07-2017 - Emmanuel Confrere - Ano : Lorsque des option possede une inclusion la librairie entre dans une boucle infinie ! -# 2.2.3 21-11-2017 - Doug Le Tough - Ano : La construction de L_PARMF ne permettait pas de differencier les differentes execution d'un meme script +# 3.0.0 26-07-2018 - Emmanuel Confrere - Evo : Changement conceptuel sur la gestion des valeurs par defaut +# Correction de l analyse des arguments declare par "@ARG:", seul la derniere declaration +# est prise en compte. +# Les variables SH_ARGS et SH_ARG_