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