socle_bash/lib/format-ligne.lib
2017-07-21 09:44:49 +02:00

70 lines
2.1 KiB
Plaintext
Executable File

##----------------------------------------------------------------------------
## Script : format_ligne.lib
## Module Puppet : gnc-script_core_dtsi
## Auteur : Emmanuel Confrere
## Date : 10-02-2016
## Version : 1.0.0
## Objet : Permet de formater le texte dans la fonction fct_affiche_ligne.
##
## Fonction : fct_format Texte taille justification
##
## Detail : Ne pas appeler directement.
##
# ----------------------------------------------------------------------------
# Mise a jour :
# 1.0.0 10-02-2016 - Emmanuel Confrere - Creation : Reprise du script du socle Oracle
##----------------------------------------------------------------------------
function fct_format
{
local L_TEXT="$1"
local L_TAILLE=$2
local L_JUSTIFIER=$3
local L_TMP=""
local L_TMP2=""
local L_RESULT=""
local L_REPETITION=0
case "${L_JUSTIFIER}" in
"r" ) L_TMP=1
L_REPETITION=$(( ${L_TAILLE} / ${#L_TEXT} + 1))
while [ ${L_TMP} -le ${L_REPETITION} ]
do
L_RESULT="${L_RESULT}${L_TEXT}"
L_TMP=$(( ${L_TMP} + 1 ))
done ;;
"c" ) L_TMP=1
L_REPETITION=$(( ${L_TAILLE} - ${#L_TEXT} ))
L_REPETITION=$(( ${L_REPETITION} / 2 ))
L_TMP2=$(( ${L_TAILLE} - ${#L_TEXT} - ${L_REPETITION} ))
while [ ${L_TMP} -le ${L_REPETITION} -a ${L_REPETITION} -gt 0 ]
do
L_RESULT="${L_RESULT} "
L_TMP=$(( ${L_TMP} + 1 ))
done
if [ ${L_REPETITION} -gt 0 ]
then
if [ ${L_REPETITION} -eq ${L_TMP2} ]
then
L_RESULT="${L_RESULT}${L_TEXT}${L_RESULT}"
else
L_RESULT="${L_RESULT}${L_TEXT}${L_RESULT} "
fi
else
L_RESULT="${L_TEXT}"
fi ;;
"d" ) L_TMP=1
L_REPETITION=$(( ${L_TAILLE} - ${#L_TEXT} ))
while [ ${L_TMP} -le ${L_REPETITION} -a ${L_REPETITION} -gt 0 ]
do
L_RESULT="${L_RESULT} "
L_TMP=$(( ${L_TMP} + 1 ))
done
L_RESULT="${L_TEXT}${L_RESULT}" ;;
esac
L_RESULT=${L_RESULT:0:${L_TAILLE}}
echo ${L_RESULT}
return 0
}
typeset -Ffx fct_format