Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/10/2006, à 00: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 wink ): 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, à 23:40)

Hors ligne

#2 Le 12/10/2006, à 23: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, à 23:09)


Pensez à mettre [Résolu] dans le titre une fois votre problème réglé !

Hors ligne

#3 Le 12/10/2006, à 23: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... roll

Hors ligne

#4 Le 13/10/2006, à 09: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 tongue)

Hors ligne

#5 Le 13/10/2006, à 09: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, à 09:47)

Hors ligne

#6 Le 13/10/2006, à 10: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, à 20: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, à 16:08)

Hors ligne