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


Répondre à