#1 Le 10/10/2006, à 23:36
- BiGOUD
[RESOLU] Génération de fichier conf à partir de parametre
Bonjour,
Je cherche à générer des fichiers .conf en remplissant certains champs à l'aide d'une variable passée en parametre.
Je m'explique (j'espere être assez clair vu l'heure avancée ): actuellement, je dois exécuter la commande suivante X fois :
application /chemin/fichier.conf
Pour chaque fois, dans le fichier.conf, seulement quelques parametres changent :
exemple 1 :
dir=/home/bigoud
dir2=/var/www/test_bigoud
...
exemple 2 :
dir=/home/toto
dir2=/var/www/test_toto
...
Ce qui veut dire que j'ai besoin à l'heure actuelle d'autant de fichier.conf que le nombre de fois où je souhaite exécuter ma commande.
Je cherche un petit script qui me permettrait de passer en parametre seulement la partie qui change.
C'est à dire, dans fichier.conf, remplacer
dir=/home/bigoud
dir2=/var/www/test_bigoud
par
dir=/home/$1 (ou dir=/home/$VARIABLE)
dir2=/var/www/test_$1 (ou dir2=/var/www/test_$VARIABLE)
et créer une fonction ou je passerai en parametre la valeur que je souhaite
fonction(){
génération du fichier conf à l'aide de la variable
application /chemin/fichier.conf
}
fonction bigoud
fonction toto
...
Mon problème est que je ne sais pas comment mettre à jour dans le fichier.conf la valeur du parametre.
Quelqu'un peut-il m'éclairer svp ?
Merci
A+
Dernière modification par BiGOUD (Le 12/10/2006, à 22:40)
Hors ligne
#2 Le 12/10/2006, à 22:09
- snapshot
Re : [RESOLU] Génération de fichier conf à partir de parametre
Au moyen d'un herescript ???
function trucmuche() {
cat > $1.conf << EOF
dir=/home/$1
dir2=/var/www/test_$1
EOF
}
trucmuche bigoud
trucmuche toto
Dernière modification par snapshot (Le 12/10/2006, à 22:09)
Pensez à mettre [Résolu] dans le titre une fois votre problème réglé !
Hors ligne
#3 Le 12/10/2006, à 22:43
- BiGOUD
Re : [RESOLU] Génération de fichier conf à partir de parametre
Parfait,c'est exactement ce que je voulais.
Merci beaucoup.
C'était pourtant tellement simple...
Hors ligne
#4 Le 13/10/2006, à 08:00
- BiGOUD
Re : [RESOLU] Génération de fichier conf à partir de parametre
J'aurais juste une derniere petite question : mon fichier .conf est assez gros et j'amerais alleger le script. Actuellement avec cette méthode, je suis obligé de copier le fichier conf dans la fonction.
Est-il possible de faire plutot un appel du fichier en lien indiquant le chemin pour qu'il remplace les paramètres ?
(Sinon tant pis )
Hors ligne
#5 Le 13/10/2006, à 08:47
- lunique
Re : [RESOLU] Génération de fichier conf à partir de parametre
Je dis peut etre dire une connerie, mais tu pourrai partir d'un fichier conf où les truc a remplacer s'appellerai $variable
ta fonction ferrait un
variable=$1
export variable
et zou
P.S. du coup, t'aurai un seul fichier de conf
Dernière modification par lunique (Le 13/10/2006, à 08:47)
Hors ligne
#6 Le 13/10/2006, à 09:25
- snapshot
Re : [RESOLU] Génération de fichier conf à partir de parametre
ça doit être possible avec le préprocesseur m4, probablement au prix d'une petite contorsion...
Il faut créer un fichier conf.m4 (c'est un "template" ou modèle du fichier conf) :
dir=/home/UserName
dir2=/var/www/test_UserName
et dire à m4 de remplacer dans ce fichier tous les "UserName" par un nom définit sur la ligne de commande, ce qui ce fait de la façon suivante :
m4 --define=UserName=bigoud conf.m4
m4 --define=UserName=toto conf.m4
mais il y a un problème : m4 ne reconnait pas la macro UserName dans test_UserName.
Mais on peut ruser en lui donnant un paramètre à concaténer avant le texte à substituer.
Le fichier conf.m4 devient donc :
dir=/home/UserName
dir2=/var/www/UserName(test_)
Et l'appe devientl un poil plus compliqué :
m4 --define=UserName=\$1bigoud conf.m4
m4 --define=UserName=\$1toto conf.m4
Le $1 correspond au paramètre 1 de la macro m4 UserName. Il faut " l'escaper " par un \ pour ne pas que le shell croit que c'est un paramètre à lui et l'enlève.
Voilà... est-ce plus pratique ? l'avantage de cette méthode est que le code et les données sont séparés, ce qui est toujours une bonne chose.
Pensez à mettre [Résolu] dans le titre une fois votre problème réglé !
Hors ligne
#7 Le 13/10/2006, à 19:35
- BiGOUD
Re : [RESOLU] Génération de fichier conf à partir de parametre
Merci, j'essaierai ça la semaine prochaine.
Edit : Ben ben c'est nickel, ça marche parfaitement. Merci !
Dernière modification par BiGOUD (Le 20/10/2006, à 15:08)
Hors ligne