= Bundle - Gestion de l'environnement utilisateur = [http://servforge.legi.grenoble-inp.fr/pub/soft-trokata/bundle/bundle.html bundle] est une fonction {{{bash}}} qui permet de charger ou de décharger un environnement dans son shell courant. Pour le moment, seul {{{bash}}} est réellement testé ! {{{bundle}}} dans l'esprit est très proche de [http://modules.sourceforge.net/ module]. Cette dernière modifie en temps réel les variables d'environnement du shell courant. Elle se configure via le langage {{{tcl}}}. {{{bundle}}} a une architecture beaucoup plus simple. Il consiste essentiellement à lancer un nouveau shell via la commande {{{load}}} et à fermer ce shell via {{{unload}}}. Lors du chargement, le fichier en paramètre est sourcé et modifie donc l'environnement courant... Il est ainsi possible de définir aussi des fonctions en plus des variables d'environnement. La configuration est simplement un fichier comme le {{{bashrc}}} par exemple. Contrairement à {{{module}}}, {{{bundle}}} fonctionne avec des sous shell (sauf commande {{{source}}}). Les variables non exportés ne sont pas utilisable dans le sous shell. Autre différence, comme en programmation moderne, les {{{bundle}}} doivent être chargé et déchargé dans l'ordre alors que {{{module}}} autorise un ordre quelconque. Moyennant un petit hack, il faut noter que l'history du shell est conservé ! Un utilisateur n'y prêtant pas attention ne verra pas qu'il passe dans un sous shell... == Repository == L'ensemble du code est sous '''licence libre'''. Les scripts en {{{bash}}} sont sous GPL version 3 ou plus récente (http://www.gnu.org/licenses/gpl.html). Tous les sources sont disponibles sur la forge du LEGI : http://servforge.legi.grenoble-inp.fr/svn/soft-trokata/trunk/bundle Les sources sont gérés via subversion (http://subversion.tigris.org/). Il est très facile de rester synchronisé par rapport à ces sources. * la récupération initiale {{{ svn checkout http://servforge.legi.grenoble-inp.fr/svn/soft-trokata/trunk/oarutils soft-oarutils }}} * les mises à jour par la suite {{{ svn update }}} Il est possible d'avoir un accès en écriture à la forge sur demande motivée à [mailto:Gabriel.Moreau(A)legi.grenoble-inp.fr Gabriel Moreau]. Pour des questions de temps d'administration et de sécurité, la forge n'est pas accessible en écriture sans autorisation. == Installation == Un {{{Makefile}}} est à la racine du projet, il comporte les cibles suivantes : * {{{install}}} : Installation à faire la première fois. * {{{update}}} : Mise à jour de l'installation. Ne mettra pas à jour certains fichiers si besoin (configuration...). * {{{sync}}} : Mise à jour vis à vis du dépôt {{{SVN}}}. En pratique, équivalent à {{{svn update}}}. Il ne faut pas modifier le {{{Makefile}}} pour l'adapter à son environnement. Cependant, celui-ci n'est pas forcément idéal pour votre configuration. Pour ce faire, le {{{Makefile}}} charge s'ils existent les deux sous fichiers {{{config.mk}}} et {{{rules.mk}}}. Le premier permet de surcharger des variables et le second des règles. Par défaut, {{{bundle}}} fonctionne avec le paquetage debian {{{sysprofile}}} et va s'installer dans {{{/etc/sysprofile.d}}}. Il peut être judicieux de l'installer ailleurs, par exemple dans {{{/etc/profile.d}}}. Cela se réalise très simple en définissant dans le fichier {{{config.mk}}} la variable {{{PREFIX}}}. {{{ PREFIX:=/etc/profile.d }}}