Précédent Remonter Suivant

5  Exemple

L'exemple introductif suivant illustre l'utilisation de dotg. Je désire générer le fichier de configuration de mon shell de connexion (fichier $HOME/.login) pour deux configurations : ma machine personnelle et mon compte sur le réseau enseignement au FIL.

Dans le fichier common.dotg je définis différents prédicats :
;;;------------------------------
;;; common.dotg
;;; definitions de prédcicats et macros DOTG
;;; fichier inclus par mes differents fichiers DOTG
;;;------------------------------------------------------------

#predicate MAISON hostname *.homelinux.net
#predicate LIFL hostanme *.lifl.fr
#predicate FIL hostname *.fil.univ-lille1.fr
#predicate PORTABLE hostname baroudeur.*

#predicate LINUX uname Linux
#predicate CYGWIN uname CYGWIN*

#if PORTABLE MAISON
#define OUTPUTDIR /duchmol
#endif 
#if FIL
#define OUTPUTDIR /home/licence/duchmol
#endif

#define Dotg_OLDSUFFIX ~
Ce fichier suppose le comportement suivant des commandes hostname et uname : Dans mon fichier .login je désire : Je n'ai qu'un éditeur préféré, mais l'imprimante que j'utilise à la maison est nommée didot [Les Didot sont une célèbre famille d'imprimeurs des xviiie et xixe .], alors que le système des salles TP est prévu pour fonctionner sans définition de PRINTER. Le fichier de configuration pour Linux fourni par les administrateurs est /home/admin/var/envi/envi.std.linux.

Soit le fichier dot-login.csh suivant
###------------------------------
### dot-login.csh
### source dotg de mon .login
###------------------------------------------------------------

#include common.dotg

#define DotG_OUTPUTFILE <<OUTPUTDIR>>/.login
#define DotG_OUTPUTMODE 444
#define DotG_COMMENTCHAR #

#openfile
###------------------------------
### My dot login file
###------------------------------------------------------------
#info

# Mon editeur : emacs ....
setenv EDITOR emacs

#if MAISON
# L'imprimante qui jouxte mon bureau
setenv PRINTER didot
#endif
#if FIL
# Utilisation de l'imprimante par defaut 
unsetenv PRINTER
#endif

#if FIL
#if LINUX
# Environnement du FIL 
source /home/admin/var/envi/envi.std.linux
#endif
#endif
La commande dotg générera dans mon fichier .login
###------------------------------
### My dot login file
###------------------------------------------------------------
### Do not edit, this is an AUTOMATICALLY GENERATED file
### Generated by dotg for duchmol from dot-login.csh

# Mon editeur : emacs ....
setenv EDITOR emacs

# L'imprimante qui jouxte mon bureau
setenv PRINTER didot
à la maison, et
###------------------------------
### My dot login file
###------------------------------------------------------------
### Do not edit, this is an AUTOMATICALLY GENERATED file
### Generated by dotg for duchmol from dot-login.csh

# Mon editeur : emacs ....
setenv EDITOR emacs

# Utilisation de l'imprimante par defaut 
unsetenv PRINTER

# Environnement du FIL 
source /home/admin/var/envi/envi.std.linux
en salle TP.


Précédent Remonter Suivant