AXOPEN

BASH UNIX – Alimentation d’un fichier INI à partir d’un autre

Voici une fonction en BASH permettant le remplacement d’un paramètre contenu dans un fichier .INI par la valeur de ce paramètre récupéré dans un deuxième fichier.

Ce type de fonction peut-être utilisé dans l’installation automatisée d’une applications sous UNIX (nous l’utilisons par exemple pour nos clients dans l’alimentation du fichier opx2.ini à partir de database.ini pour le logiciel P5 de Planisware).

#—————————–———————————–
# Fonction _ReplaceIni : Remplace une chaine dans un fichier .ini
#—————————–———————————–
function _ReplaceIni
{
typeset    _IniInFile= »$1″     # Nom du fichier ini
typeset    _IniOutFile= »$2″    # Fichier de sortie
typeset    _IniStr= »$3″        # Chaine a rechercher
typeset    _IniSear= »$4″       # Valeur a remplacer
typeset    _IniRepl= »         # Valeur trouvee
typeset    _IniOutContent= »   # Contenu du fichier de sortie
if [[ -s « ${_IniInFile} » ]] && [[ -n « ${_IniStr} » ]]
then
# Extraire le contenu de la ligne de definition
_IniRepl=$(egrep « :${_IniStr} » ${_IniInFile} | cut -d’:’ -f2-)
fi
# Affichage de la valeur recuperee
echo « Alimentation de ${_IniRepl} »
# Remplacement de la ligne dans le fichier .ini
_IniOutContent=$(sed « s/${_IniSear}/${_IniRepl}/g » ${_IniOutFile})# Vidage du fichier de sortie
> ${_IniOutFile}# Le contenu est ajoute au fichier de sortie
echo « ${_IniOutContent} » >> ${_IniOutFile}
}

 

 

 

Voici un exemple d’appel de cette fonction pour l’alimentation du fichier opx2.ini à partir de database.ini :

# Exemple d’utilisation pour OPX2
_ReplaceIni « /…/OPX2Modules/database.ini » « /…/OPX2HttpRoot/webconf/opx2.ini » « database-type » « database-type :ISTYPE »