Salut Chicha,
Ncooker n'utilisera pas Nsetup directement. Ce seront les Nbuilds qui le
feront dans leur fonction do_*
Je sais que ce n'est pas vraiment le débat mais je ne suis pas trop pour car
cela crée une dépendance entre un paquet (par exemple grub) et Nsetup.
Pourquoi ajouter une telle dépendance ? Quand grub s'exécute, il n'a pas
besoin de Nsetup.
Par contre, je préfererai que le nbuild de grub (pour prendre cet exemple)
installe le module Nsetup de gestion de grub dans les répertoires de Nsetup
(que Nsetup soit installé ou pas).
Le nbuild créerait le répertoire /usr/lib/Nsetup/modules/bootloader (s'il
n'existe pas) et installerait un fichier grub.sh dans ce répertoire.
Si Nsetup est installé, l'utilisateur peut lancer Nsetup qui détectera
automatiquement le module grub.sh.
Si Nsetup n'est pas installé, on se retrouve avec un fichier grub.sh qui ne
sert à rien dans le présent mais qui est potentiellement utile si Nsetup
vient à être installé.
Vous me direz que c'est la même chose, mais il y a quand même une subtilité
: un nbuild est aussi un programme en soit (une mini librairie en faite).
Je ne suis pas d'accord avec toi sur le fait qu'un nbuild soit une
librairie. C'est le contraire en fait.
Une librairie est un composant qui propose des fonctions et une interface
(au sens "API"). Dans notre cas, c'est Ncooker qui demande d'implémenter les
fonctions do_*.
Les nbuilds sont plutôt des sortes de plug-ins qui respectent l'interface
définie par Ncooker et qui peuvent utiliser les fonctions de Ncooker.
Vous allez peut-être me dire que c'est subtile et que je joue avec les mots
mais je tenais à apporter cette réflexion.
D'ailleurs, cela rejoint l'idée que j'envisage pour Nsetup. Tous les modules
et sous-modules pourraient respecter une certaine interface. De cette façon,
un module pourrait être ajouté à Nsetup sans qu'il soit nécessaire d'en
avertir Nsetup.
Hier soir, j'ai regardé un peu le code de l'ancien Nsetup et j'ai vu que le
script principal (Nsetup) était dépendant des scripts modules. En effet, le
script principal fait appel aux fonctions spécifiques de chaque module.
Ainsi, il fait appel à la fonction "sound_main" qui est défnie dans le
module "sound".
Pour donner un exemple, je prendrais le module des services. Chaque
sous-module aurait la charge d'un service (httpd, mysqld et autres). On
pourrait fixer le fait qu'un sous-module du module des services se doit de
respecter l'interface suivante :
- une constante SERVICE_NAME
- une constante SERVICE_SHORT_NAME
- une fonction start
- une fonction stop
- une fonction restart
Quand l'utilisateur entre dans le module de Nsetup, tous les services sont
affichés grâce aux constantes SERVICE_NAME et SERVICE_SHORT_NAME de chaque
sous-module. Si l'utilisateur demande le démarrage d'un service, la fonction
start du sous-module concerné est appelé.
Bon, je m'enflamme peut-être un peu mais je voulais profiter d'avoir la
parole pour donner mon idée. :p
++
Chicha
A+
--
Julien
_________________________________________________________________
MSN Messenger : personnalisez votre messagerie instantanée !
http://g.msn.fr/FR1001/866