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 »