Bonjour,
Je suis actuellement en train d'essayer de faire fonctionner system-tools-backends sur la distribution Gentoo. N'y connaissant rien en perl, ça m'a permit de découvrir un peu la chose. J'ai réussi a rendre le tout presque fonctionnel, mais la je bloque sur un truc, je ne vois pas du tout comment procédé.
Je vous détail un peu la chose :
Tout d'abord un exemple de fichier de conf :Le bloc que je voudrai pouvoir Ajouter/Modifier/Supprimer au fichier de conf est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 config_eth0=("dhcp") config_ppp0=("ppp") plugins_ppp0=("pppoe") config_eth1=("null") link_ppp0=("eth1") depend_ppp0 () { need net.eth1 } username_ppp0='********' password_ppp0='********'mais aurait pu être
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 depend_ppp0 () { need net.eth1 }Il pourrait même y avoir les deux blocs dans le fichier, histoire de compliquer la chose
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 depend_ppp1 () { need net.eth0 }
Donc, en résumé, je pense avoir besoin de 3 variables :
$file => le nom du fichier de conf
$dev => pour identifier le bloc (depend_$dev)
$needed => pour le need (net.$needed)
Ce que ma fonction devra faire :
- Si a l'appel de la fonction $needed n'est pas défini, le bloc correspondant a $dev devra être supprimé de $file
- Si le bloc correspondant a $dev n'existe pas dans $file, il faut l'ajouter
- Si le bloc correspondant a $dev existe, mais que $needed ne correspond pas, effectuer la modification
Voilà, où j'en suis maintenant (pas très loin) :
Les fonctions, load_buffer et save_buffer sont des fonctions internes a system-tools-backends. Et load_buffer retourne un tableau contenant les lignes du fichier passer en arguments.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 sub ma_fonction { my ($file, $dev, $needed) = @_; my ($contents); $contents = &Utils::File::load_buffer ($file); return &Utils::File::save_buffer ($contents, $file); }
Et voilà, c'est là que je bloque, je ne sait pas du tout par où commencer pour le traitement de $contents du fait qu'il y ait plusieur ligne à modifier, si quelqu'un pourrait me mettre sur la voie, ça serait bien cool !! (me mettre sur la voie, hein, pas faire le travail, j'aime bien comprendre ce que je fais)
Merci beaucoup d'avance !
debotux
Partager