Précédent Remonter Suivant

2  Commandes DOTG

Les commandes DOTG sont les suivantes :
#include
permet l'inclusion d'un autre fichier source DOTG.
#define
crée une nouvelle macro. Certaines macros spéciales conditionnent le comportement de dotg.
#predicate
définit un nouveau prédicat qui sera utilisé avec les commandes #if
#if/#ifnot/#endif
permettent la production conditionnelle de lignes de texte.
#openfile/#closefile
marquent le début et la fin de production de texte.
#info
génère une ligne de promotion pour dotg.
Une commande DOTG doit apparaître seule sur une ligne, toutes les commandes DOTG débutent par un caractère #.

Un fichier DOTG comporte des commandes et des lignes de texte parmi lesquelles on distingue :

La commande #include

Un texte commun à plusieurs fichiers DOTG peut être placé dans un fichier commun (par exemple common.dotg) et inclus dans chacun des fichiers par la commande
#include "common.dotg"
dotg remplace cette ligne par le contenu du fichier common.dotg.

Ce fichier peut contenir d'autres commandes DOTG.

La commande #define et les macros

La commande #define définit des macros qui sont des noms auxquels sont associés une valeur. Par exemple
#define OUTPUTDIR /users/phm
définit la macro OUTPUTDIR dont la valeur est « /users/phm ».

L'utilisation de cette macro, c'est-à-dire la substitution de son nom par sa valeur, est spécifiée dans le source DOTG par l'utilisation de chevrons :
<<OUTPUTDIR>>
D'autres choses sont possibles avec les macros :

Les commandes #openfile et #closefile

Un couple de commande #openfile/#closefile encadre un bloc de lignes qui vont produire du texte dans le fichier de configuration.

En particulier, les lignes précédant la commande #openfile peuvent définir les macros DotG_OUTPUTFILE qui va identifier le nom du fichier de configuration qui devra être créé (voir la section 3).

Il est possible de trouver plusieurs paires de commandes #openfile/#closefile dans un fichier DOTG, mais elles ne doivent pas être imbriquées.

Les prédicats et la commande #predicate

La commande #predicate définit des macros prédicats. Ce sont des macros particulières, à valeur vraie ou fausse. Une telle définition repose sur la comparaison de la valeur d'une commande avec des motifs. Une commande est une commande Unix quelconque. Un motif est une expression régulière de noms de fichiers.

Par exemple, le prédicat FIL :
#predicate FIL hostname *.fil.univ-lille1.fr
prendra la valeur vraie si et seulement si le résultat produit par la commande hostname concorde avec l'expression régulière *.fil.univ-lille1.fr.

Les commandes #if, #ifnot, et #endif

Ces commandes permettent de traiter ou non un bloc de lignes DOTG selon qu'un prédicat est défini à vrai ou non. Par exemple,
#ifnot FIL
# L'imprimante qui jouxte mon bureau
setenv PRINTER didot
#endif
#if FIL
# Utilisation de l'imprimante par defaut 
unsetenv PRINTER 
#endif 
On peut trouver plusieurs prédicats associés à un #if. Le bloc est traité si l'un des prédicats est vrai.

Les constructions #if/#endif peuvent être imbriquées.

Le #endif correspondant à un #if doit être dans le même fichier source DOTG.

La commande #info

La commande #info indique à dotg de générer quelques lignes indiquant que c'est elle qui à produit le fichier, par exemple sur le modèle suivant :
### Do not edit, this is an AUTOMATICALLY GENERATED file
### Generated by dotg for phm from dot-login.csh
Ces lignes doivent être des lignes de commentaire pour le fichier de configuration généré. La macro spéciale Dotg_COMMENTCHAR configure cela.


Précédent Remonter Suivant