"MaJ version socle"
This commit is contained in:
@@ -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_<option> ou leur representant defini dans la declaration
|
||||
# des option et argument (@ARG: et @OPT:) peuvent etre surcharge dans le fichier de configuration.
|
||||
# 3.0.1 26-11-2017 - Doug Le Tough - Ano : La construction de L_PARMF ne permet pas de differencier les differentes execution d'un meme script
|
||||
##----------------------------------------------------------------------------
|
||||
|
||||
function fct_params
|
||||
@@ -96,19 +101,26 @@ L_PARMF="${SH_PROG%*.sh}_${SH_SESSION_ID}.parms"
|
||||
> ${L_PARMF}
|
||||
|
||||
# -- Extraction de la declaration des arguments du script et affectation de la valeur par defaut
|
||||
# -- Il s agit de recuperer les lignes de l entete du script qui commence par "# ARG:"
|
||||
L_PARAM_ARGS=`grep -E "^# *@ARG:" ${L_PROG}|head -1|sed "s/# *@ARG: *\([^ #]*\).*$/\1/"`
|
||||
# -- Il s agit de recuperer la dernier ligne de l entete du script qui commence par "# ARG:"
|
||||
L_PARAM_ARGS=`grep -E "^# *@ARG:" ${L_PROG}|head -1|sed "s/# *@ARG: *\([^ #]*\).*$/\1/"|tail -1`
|
||||
if [ -n "${L_PARAM_ARGS}" ]
|
||||
then
|
||||
# -- Un arguments a ete declare on initialise la valeur par defaut
|
||||
L_DEFARG=`echo ${L_PARAM_ARGS}|cut -d: -f4`
|
||||
L_VAR=`echo ${L_PARAM_ARGS}|cut -d: -f2`
|
||||
L_DEFARG=`echo ${L_PARAM_ARGS}|cut -d: -f4` # Valeur par defaut de l arguments
|
||||
L_VAR=`echo ${L_PARAM_ARGS}|cut -d: -f2` # Nom de la variable acceuillant la valeur de l argument
|
||||
L_VAR=${L_VAR:="SH_ARGS"} # Nom par defaut de la variable acceuillant la valeur de l argument
|
||||
|
||||
# -- detection d une valeur par defaut pour l argument du script
|
||||
# -- La variable L_PARAM_ARGS_DEF sera utilise pour ecraser le parametre par defaut si ce dernier a ete soumis au script
|
||||
[ -n "${L_DEFARG}" ] && L_PARAM_ARGS_DEF=1 || L_PARAM_ARGS_DEF=0
|
||||
# -- initialisation de la valeur par defaut
|
||||
[ -n "${L_VAR}" -a -n "${L_DEFARG}" ] && eval ${L_VAR}=\"${L_DEFARG}\"
|
||||
[ -z "${L_VAR}" -a -n "${L_DEFARG}" ] && eval SH_ARGS=\"${L_DEFARG}\"
|
||||
if [ -n "${L_DEFARG}" ] && L_PARAM_ARGS_DEF=1 || L_PARAM_ARGS_DEF=0
|
||||
then
|
||||
L_PARAM_ARGS_DEF=1
|
||||
# -- initialisation de la valeur par defaut, si cela n a pas ete effectuer dans le fichier de conf du script
|
||||
eval ${L_VAR}=\$\{${L_VAR}:=\"${L_DEFARG}\"\}
|
||||
else
|
||||
L_PARAM_ARGS_DEF=0
|
||||
fi
|
||||
|
||||
# -- On recupere la liste des valeurs possibles pour les arguments du script
|
||||
L_PARAM_ARGS_CTL=`echo ${L_PARAM_ARGS}|cut -d: -f5`
|
||||
fi
|
||||
@@ -152,7 +164,7 @@ do
|
||||
L_TMP=`echo ${L_PARAM}|sed 's/[^:]//g'`
|
||||
if [ ${#L_TMP} -lt 6 -o ${#L_TMP} -gt 7 ]
|
||||
then
|
||||
L_ERREUR_MSG[1]="<lib:fct_params> La declaration de l option \"${L_OPT_NOM[${L_IDX}]}\" ne comporte pas le nopmbre de champs requis (7 ou 8)"
|
||||
L_ERREUR_MSG[1]="<lib:fct_params> La declaration de l option \"${L_OPT_NOM[${L_IDX}]}\" ne comporte pas le nombre de champs requis (7 ou 8)"
|
||||
L_ERREUR=1
|
||||
else
|
||||
[ `echo ${L_PARAM}|cut -d: -f1|grep -c "o"` -eq 1 ] && L_OPT_OBLIGATOIRE="${L_OPT_OBLIGATOIRE}${L_OPT_NOM[${L_IDX}]}:${L_IDX} "
|
||||
@@ -166,16 +178,13 @@ do
|
||||
eval ${L_TMP}=${L_IDX}
|
||||
fi
|
||||
|
||||
# -- Valeur par defaut pour les parametres non booleen
|
||||
L_VAR=`echo ${L_PARAM}|cut -d: -f3`
|
||||
L_DEFARG=`echo ${L_PARAM}|cut -d: -f5`
|
||||
|
||||
# -- Affectation de la valeur par defaut pour les parametres non booleen, ayant defini une valeur par defaut
|
||||
L_DEFARG=`echo ${L_PARAM}|cut -d: -f5` # valeur par defaut
|
||||
if [ `echo ${L_PARAM}|cut -d: -f1|grep -c "b"` -eq 0 -a -n "${L_DEFARG}" ]
|
||||
then
|
||||
if [ -z "${L_VAR}" ]
|
||||
then eval SH_ARG_${L_OPT_NOM[${L_IDX}]}=\"${L_DEFARG}\"
|
||||
else eval ${L_VAR}=\"${L_DEFARG}\"
|
||||
fi
|
||||
L_VAR=`echo ${L_PARAM}|cut -d: -f3` # Nom de la variable acceuillant la valeur de l argument
|
||||
L_VAR=${L_VAR:="SH_ARG_${L_OPT_NOM[${L_IDX}]}"} # Nom par defaut de la variable acceuillant la valeur de l argument
|
||||
eval ${L_VAR}=\$\{${L_VAR}:=\"${L_DEFARG}\"\} # Valorisation, si cela n a pas ete effectuer dans le fichier de conf du script
|
||||
fi
|
||||
fi
|
||||
((L_IDX++))
|
||||
@@ -315,7 +324,7 @@ then
|
||||
if (( ! `echo "${L_OPTARGS_CTL}"|grep -cw "${L_VAL}"` ))
|
||||
then
|
||||
# -- la valeur n est pas presente dans la liste !!
|
||||
L_ERREUR_MSG[12]="L argument \"${L_VAL}\" n est pas valide pour l option ${L_OPT_NOM[${L_IDX}]} ( Argument attendu : ${L_OPTARGS_CTL})\n"
|
||||
L_ERREUR_MSG[12]="L argument \"${L_VAL}\" n est pas valide pour l option ${L_OPT_NOM[${L_IDX}]} (Argument attendu : ${L_OPTARGS_CTL})\n"
|
||||
L_ERREUR=12
|
||||
fi
|
||||
fi
|
||||
@@ -349,7 +358,7 @@ then
|
||||
if (( ! `echo "${L_PARAM_ARGS_CTL}"|grep -cw "${L_VAL}"` ))
|
||||
then
|
||||
# -- la valeur n est pas presente dans la liste !!
|
||||
L_ERREUR_MSG[12]="L argument \"${L_VAL}\" n est pas valide pour ce script ( Argument attendu : ${L_PARAM_ARGS_CTL})\n"
|
||||
L_ERREUR_MSG[12]="L argument \"${L_VAL}\" n est pas valide pour ce script (Argument attendu : ${L_PARAM_ARGS_CTL})\n"
|
||||
L_ERREUR=12
|
||||
fi
|
||||
fi
|
||||
@@ -361,7 +370,7 @@ then
|
||||
(( ${L_NB_ARG} )) && eval ${L_VAR}[${L_NB_ARG}]=${L_VAL} || eval ${L_VAR}=${L_VAL}
|
||||
else
|
||||
# -- Pas de declaration !!
|
||||
(( ! ${#L_ERREUR_MSG[11]} )) && L_ERREUR_MSG[11]="L argument suivant ete dectecte sans declaration : "
|
||||
(( ! ${#L_ERREUR_MSG[11]} )) && L_ERREUR_MSG[11]="L argument suivant a ete dectecte sans declaration : "
|
||||
L_ERREUR_MSG[11]="${L_ERREUR_MSG[11]}\"${1}\" "
|
||||
L_ERREUR=11
|
||||
fi
|
||||
@@ -476,7 +485,7 @@ fi
|
||||
# -- ---------------------------
|
||||
if [ -n "${L_OPTINCONNU}" ]
|
||||
then
|
||||
L_ERREUR_MSG[10]="Option inconnue detectee(s) : ${L_OPTINCONNU}"
|
||||
L_ERREUR_MSG[10]="Option inconnue(s) detectee(s) : ${L_OPTINCONNU}"
|
||||
L_ERREUR=10
|
||||
fi
|
||||
|
||||
@@ -495,7 +504,7 @@ done
|
||||
L_VAL="${SH_OPTION_h}${SH_OPTION_log}${SH_OPTION_hist}${SH_OPTION_s}${SH_OPTION_cpt}"
|
||||
if [ ${L_VAL} -ne 0 ]
|
||||
then
|
||||
if (( 2#${L_VAL} & 2#00010 )) # -- Comparaison binaire bit a bit vrix si l option -s est positionnee
|
||||
if (( 2#${L_VAL} & 2#00010 )) # -- Comparaison binaire bit a bit vrai si l option -s est positionnee
|
||||
then
|
||||
# -- Option s
|
||||
SH_SILENCE="oui"
|
||||
|
||||
Reference in New Issue
Block a user