@ -192,9 +192,9 @@ Note : Les lignes commençant par 2 "#" sont utilisées pour générer l'aide, l
@@ -192,9 +192,9 @@ Note : Les lignes commençant par 2 "#" sont utilisées pour générer l'aide, l
pour garantir la fiabilité de l'information. Ce sont ces lignes, qui sont lues lors de l'utilisation de
l'option par defaut "-h".
### 1.1 Elements du cartouche
#### 1.1 Elements du cartouche
#### 1.1.1 Meta-données
##### 1.1.1 Meta-données
<Action> : peut prendre les valeurs suivantes -> cre, ano, evo, typo
* cre : Création du script.
@ -207,7 +207,7 @@ l'option par defaut "-h".
@@ -207,7 +207,7 @@ l'option par defaut "-h".
<Version> : Format x.y.z
Pour le suivi des versions on utilisera le versionnement sémantique (voir paragraphe III-1.2).
#### 1.1.2 Paragraphe
##### 1.1.2 Paragraphe
* Mise a jour : Ce paragraphe est utilisé pour suivre l'evolution des versions. La dernière version en
vigueur doit être reportée dans le premier paragraphe.
@ -222,7 +222,9 @@ Si aucune déclaration n'est présente alors la bibliothèque params.lib ne fait
@@ -222,7 +222,9 @@ Si aucune déclaration n'est présente alors la bibliothèque params.lib ne fait
Dans ce cas les options par défaut -h, -log, -hist, -cpt, -s et -dbg ne seront pas disponible.
Si le script ne nécessite pas d'option mais que l'on souhaite disposer des options par défaut, il
faudra déclarer une option bidon. ex: "# @OPT: f:bidon::::::"
faudra déclarer une option bidon.
# @OPT: f:bidon::::::
Si la déclaration existe alors le socle gèrera les paramètres en entrée du script, ainsi que
les options par défaut -h, -log, -hist, -cpt, -s et -dbg. Ces mots clé sont reservés et ne
@ -232,9 +234,10 @@ La déclaration est réalisée dans le paragraphe "Liste des options et argument
@@ -232,9 +234,10 @@ La déclaration est réalisée dans le paragraphe "Liste des options et argument
option est identifiée par l'entête de ligne "# @OPT:" suivi de la description.
La description consiste en une liste de paramètres séparés par ":"
L'ordre des paramètre est figé et tous doivent etre présents.
L'ordre des paramètres est figé et tous doivent etre présents.
8 champs sont obligatoires, soit 7 caracteres ":" (on ne compte pas le caracatere ":" suivant @OPT).
Exemple de déclaration valide :
@ -298,486 +301,253 @@ Les options par défaut réalisent les actions suivantes :
@@ -298,486 +301,253 @@ Les options par défaut réalisent les actions suivantes :
-dbg N : Activation du mode debug au niveau "N". Active les messages gérés par la librairie fct_message
dont l'option -debug est utilisée.
* Arguments : La declaration des argument du script n'est pas obligatoire
Attention : Si aucune option "@OPT:" n est declaree alors il n y auras pas de prise en charge des arguments.
Si votre script ne necessite pas d option, mais qu il presente des arguments, alors il faudras declarer
une option bidon :"# @OPT: f:bidon::::::"
* Arguments : La déclaration des argument du script n'est pas obligatoire
Attention : Si aucune option "@OPT:" n'est déclarée alors il n y aura pas de prise en charge des arguments.
Si votre script ne nécessite pas d'option, mais qu'il presente des arguments, il faudra alors déclarer une
option bidon :
# @OPT: f:bidon::::::
La déclaration est réalisé dans le paragraphe "Liste des options et arguments".
Elle est identifiée par l'entête de ligne "# @ARG:" suivi de la description.
Il ne peut y avoir qu'une ligne de description pour les arguments. (Si plusieurs lignes avec le
marqueur @ARG existent, alors seule la premiere est prise en compte).
La description consiste en une liste de paramètres séparés par ":"
<type>:<var>:<nb\_arg>:<def\_val>:<ctl\_val>
L'ordre des paramètres est figé et tous doivent être présents.
* <type> : Propriéte de l'attribu défini par l'aggrégation des lettres suivantes:
f -> Argument falcultative
o -> Argument obligatoire
M -> Argument transforme en majuscule
La declaration est realise dans le paragraphe "Liste des options et arguments".
Elle est identifiee par l entete de ligne "# @ARG:" suivi de la description.
Il ne peut y avoir qu une ligne de description pour les arguments.
(Si plusieurs lignes avec le marqueur @ARG existe, alors seul la premiere et prise en compte)
* <var> : nom de la variable dans laquelle sera stockée le(s) argument(s)
si plusieurs arguments alors un tableau sera initialisé <var[n]>
L'index [n] commence a zero.
Le nombre d'arguments effectivement passés à la commande est "${#<var>[*]}".
La valeur max de l'index [n] est "${#<var>[*]} - 1".
La description consiste en une liste de parametres separes par ":"
<type>:<var>:<nb\_arg>:<def\_val>:<ctl\_val>
Si <var> n'est pas renseigné alors la variable SH\_ARGS[] est initialisée
L ordre des parametres est fige et tous doivent etre presents.
* <nb\_arg> : nombre d'arguments attendus de la forme "min/max", "min/", "max" ou "".
si vide alors on considère que le nombre d'arguments est a minima de 1.
la forme "min/" considère le nombre est a minima de "min".
<type> : Propriete de l attribu defini par l agregation des lettres suivantes
f -> Argument falcultative
o -> Argument obligatoire
M -> Argument transforme en majuscule
* <def\_val> : Valeur par défaut assignée a <var>
Fonctionne si <nb\_arg> vaut 0/1 1/1
<var> : nom de la variable dans laquelle sera stockee le(s) argument(s)
si plusieurs arguments alors un tableau sera initialise <var[n]>
L index [n] commence a zero.
Le nombre d arguments effectivement passes a la commande est "${#<var>[*]}".
L valeur max de l index [n] est "${#<var>[*]} - 1".
ATTENTION:
Si le caractère "&" est présent dans la valeur d'un argument, alors cette valeur doit être encadrée
par une simple quote et le caractère "&" doit être protégé par un anti-slash "\".
Si <var> n est pas renseigne alors la variable SH\_ARGS[] est initialisee
Dans le cas contraire le shell génèrera un fils qui tentera l'execution d'un script portant le nom de la valeur
de l'argument.
<nb\_arg> : nombre d arguments attendus de la forme "min/max", "min/", "max" ou "".
si vide alors on considere que le nombre d arguments est a minima de 1.
la forme "min/" considere le nombre est a minima de "min".
#### 1.2 Versionnement sémantique
<def\_val>: Valeur par defaut assignee a <var>
Fonctionne si <nb\_arg> vaut 0/1 1/1
##### 1.2.1 Usage
ATTENTION
Si le caractere "&" est present dans la valeur d un argument, alors cette valeur doit etre encadree
par une simple cote et le caractere "&" doit etre proteger par un anti-slash "\".
L'idée de l'utilisation du versionnement sémantique est de définir clairement les intentions
d'un changement dans un code pour les clients de ce dernier. Ceci permet de fiabiliser la mise en
place de dépendances et de déterminer les impacts d'un changement.
Le cas echeans le shell generera un fils qui tentera l execution d'un script portant le nom de la valeur de l argument.
##### 1.2.2 Format
1.2 Versionnement semantique
1.2.1 Usage
L idee de l utilisation du versionnement semantique est de definir clairement les intentions
d un changement dans un code pour les clients de ce dernier. Ceci permet de fiabiliser la mise en
place de dependances et de determiner les impacts d un changement.
Le format utilisé est le suivant: X.Y.Z
1.2.2 Format
Le format utilise est le suivant x.y.z
x est l identifiant de version majeure.
y est l identifiant de version mineure.
z est l identifiant de version de correction.
* X est l'identifiant de version majeure.
* Y est l'identifiant de version mineure.
* Z est l'identifiant de version de correction.
1.2.3 Semantique
- Version majeure X : Il vaut "0" lors du developpement, le script est considere non valide et ne
devrait pas etre appele par d autre script. Une fois le script valide la version
doit etre 1.0.0 (premiere version stable).
Il doit etre incremente si des changements dans le code n assure plus la compatibilite
ascendante. Les identifiants de version mineure et de correction doivent etre remis
a zero quand l identifiant de version majeure est incremente.
- Version mineur y : Doit etre incremente lors de l ajout de nouvelle fonctionnalite ou d amelioration
du code qui n on t pas d impact sur la compatibilite ascendante. L identifiant de
version de correction doit être remis a zero lorsque l identifiant de version mineure
est incremente.
- Version de correction z : Doit être incremente si seules des corrections retro-compatibles sont introduites.
Une correction est definie comme un changement interne qui corrige un comportement incorrect.
Il peut etre incremente lors de correction typographique ou grammaticale.
##### 1.2.3 Sémantique
* Version majeure X : Il vaut "0" lors du développement, le script est considéré non valide et ne
devrait pas être appelé par d'autres scripts. Une fois le script valide la version doit etre 1.0.0
(première version stable).
Il doit etre incrementé si des changements dans le code n'assure plus la compatibilité ascendante.
Les identifiants de version mineure et de correction doivent etre remis à zero quand l'identifiant
de version majeure est incrementé.
* Version mineur Y : Doit être incrementé lors de l'ajout de nouvelles fonctionnalités ou d'amélioration
du code qui n'ont pas d'impact sur la compatibilité ascendante. L'identifiant de version de correction doit
être remis a zero lorsque l'identifiant de version mineure est incrementé.
* Version de correction Z : Doit être incrementé si seules des corrections rétro-compatibles sont introduites.
Une correction est définie comme un changement interne qui corrige un comportement incorrect.
Il peut être incrementé lors de correction typographique ou grammaticale.
2 - Initialisation du socle.
Par defaut les librairies du socle sont chargees a la connexion. Mais pour qu elles puissent etre operationnelles
il faut initialiser les variables de session.
Ceci est realise en sourcant le fichier "${NC\_EXPL\_CFG}/init.conf" au debut du script :
Rem : L analyse des options et arguments est aussi realise par "${NC\_EXPL\_CFG}/init.conf".