Aller au contenu

    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 »