"Conversion README en markdown"

This commit is contained in:
Doug Le Tough 2017-07-21 12:00:45 +02:00
parent c7a72add50
commit 0ea09f0dcf

137
README.md
View File

@ -135,14 +135,15 @@ Remarque : Les variables SH_SILENCE et SH_NIV_DEBUG sont controlées par les opt
si la gestion des options a été activée. si la gestion des options a été activée.
III - Utilisation du socle bash ## III - Utilisation du socle bash
-------------------------
Cette partie decrit sommairmement les quelques regles d usage pour ecrire un script Bash sous le socle DTSI Cette partie decrit sommairmement les quelques regles d usage pour ecrire un script Bash sous le socle DTSI
Ceci ne concerne pas les script Ruby qui ne sont pas pris en charge par le socle decrit ici. Ceci ne concerne pas les script Ruby qui ne sont pas pris en charge par le socle decrit ici.
1 - Cartouche ### 1 - Cartouche
Les scripts doivent commencer par le cartouche ci-dessous : Les scripts doivent commencer par le cartouche ci-dessous :
+----------------------------------------------------------------------------------------------------+ +----------------------------------------------------------------------------------------------------+
| | | |
| #!/bin/bash | | #!/bin/bash |
@ -188,52 +189,56 @@ III - Utilisation du socle bash
| | | |
+----------------------------------------------------------------------------------------------------+ +----------------------------------------------------------------------------------------------------+
Note : Les lignes commencant par 2 "#" sont utilisees pour generer l aide, leur maintient est donc necessaire Note : Les lignes commençant par 2 "#" sont utilisees pour generer l'aide, leur maintient est donc nécéssaire
pour garantir la fiabilite de l information. Ce sont ces lignes, qui sont lues lors de l utilisation de pour garantir la fiabilité de l'information. Ce sont ces lignes, qui sont lues lors de l'utilisation de
l'option par defaut "-h". l'option par defaut "-h".
1.1 Elements du cartouche ### 1.1 Elements du cartouche
1.1.1 Meta-donnees
- <Action> : peut prendre les valeurs suivantes -> cre, ano, evo, typo
cre : Creation du script.
evo : Evolution du script -> Ajout de nouvelles fonctionnalites, Amelioration du code.
ano : Correction du code suite a un comportement inattendu.
typo : Ajout de commentaires, de texte ou correction gramatical sans influence sur le code.
- <Auteur> : <Prenom> <Nom> #### 1.1.1 Meta-données
- <Version> : Format x.y.z <Action> : peut prendre les valeurs suivantes -> cre, ano, evo, typo
Pour le suivie des versions on utilisera le versionnement semantique (voir paragraphe III-1.2). * cre : Création du script.
* evo : Évolution du script -> Ajout de nouvelles fonctionnalités, Amélioration du code.
* ano : Correction du code suite à un comportement inattendu.
* typo : Ajout de commentaires, de texte ou corrections gramaticales sans influence sur le code.
1.1.2 Paragraphe <Auteur> : <Prenom> <Nom>
- Mise a jour : Ce paragraphe est utilise pour suivre l evolution des versions. La derniere version en
vigueur doit etre reportee dans le premier paragraphe.
- Dependance : Permet de definir la liste ainsi que la version des scripts qui sont appeles. <Version> : Format x.y.z
Dans le cas d un changement cela permet de connaitre les scripts qui sont impactes. Pour le suivi des versions on utilisera le versionnement sémantique (voir paragraphe III-1.2).
Pour le moment aucun script n exploite cette meta-donnee.
Present pour un future usage.
- Liste des options : La declaration des options n est pas obligatoire. #### 1.1.2 Paragraphe
Si aucune declaration n est presente alors la librairie params.lib ne fait aucune action. * Mise a jour : Ce paragraphe est utilisé pour suivre l'evolution des versions. La dernière version en
Dans ce cas les options par defaut -h, -log, -hist, -cpt, -s et -dbg ne seront pas disponible. vigueur doit être reportée dans le premier paragraphe.
Si le script ne necessite pas d option mais que l on souhaite disposer des options par defaut, il * Dependance : Permêt de définir la liste ainsi que la version des scripts qui sont appelés.
faudras declarer une option bidon. ex: "# @OPT: f:bidon::::::" Dans le cas d'un changement cela permêt de connaître les scripts qui sont impactés.
Pour le moment aucun script n'exploite cette méta-donnée qui est presente pour un future usage.
Si la declaration existe alors le socle gerera les parametres en entree du script, ainsi que * Liste des options : La déclaration des options n'est pas obligatoire.
les options par defaut -h, -log, -hist, -cpt, -s et -dbg. Ces mots cle sont reserve et ne
peuvent pas etre utilise par le script.
La declaration est realise dans le paragraphe "Liste des options et arguments". Chaque Si aucune déclaration n'est présente alors la bibliothèque params.lib ne fait aucune action.
option est identifiee par l entete de ligne "# @OPT:" suivi de la description. Dans ce cas les options par défaut -h, -log, -hist, -cpt, -s et -dbg ne seront pas disponible.
La description consiste en une liste de parametres separes par ":"
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::::::"
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
peuvent pas être utilisé par le script.
La déclaration est réalisée dans le paragraphe "Liste des options et arguments". Chaque
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 ":"
<type>:<nom>:<var>:<nb_arg>:<def_val>:<OptE>:<OptI>:<ctl_val> <type>:<nom>:<var>:<nb_arg>:<def_val>:<OptE>:<OptI>:<ctl_val>
L ordre des parametre est fige et tous doivent etre presents. L'ordre des paramètre est figé et tous doivent etre présents.
8 champs sont obligatoires, soit 7 caracteres ":" (on ne compte pas le caracatere ":" suivant @OPT). 8 champs sont obligatoires, soit 7 caracteres ":" (on ne compte pas le caracatere ":" suivant @OPT).
Exemple de declaration valide : Exemple de déclaration valide :
# @OPT: fb:h::0::: # @OPT: fb:h::0:::
# @OPT: fb:s::0::: # @OPT: fb:s::0:::
# @OPT: f:dbg:SH_NIV_DEBUG:0/1::: # @OPT: f:dbg:SH_NIV_DEBUG:0/1:::
@ -242,49 +247,47 @@ III - Utilisation du socle bash
# @OPT: oM:i:G_INSTANCE:1/1:ALL:dbid: # @OPT: oM:i:G_INSTANCE:1/1:ALL:dbid:
# @OPT: oM:pr:G_PR_NOM:1/1:sq,t,l: # @OPT: oM:pr:G_PR_NOM:1/1:sq,t,l:
<type> : Propriete de l attribu defini par l agregation des lettres suivantes * <type> : Propriété de l'attribu défini par l'aggrégation des lettres suivantes:
f -> Option falcultative * f -> Option falcultative
b -> Booleen * b -> Booléen
o -> Option obligatoire * o -> Option obligatoire
M -> Argument transforme en majuscule * M -> Argument transformé en majuscule
<nom> : nom de l option (sans le tiret) Attention le nom de l option est senssible a la casse. * <nom> : nom de l'option (sans le tiret). Attention le nom de l'option est sensible à la casse.
<var> : nom de la variable dans laquelle sera stockee le(s) argument(s) * <var> : nom de la variable dans laquelle sera stockée le(s) argument(s)
si plusieurs arguments alors un tableau sera initialise <var[n]> si plusieurs arguments alors un tableau sera initialisé <var[n]>
L index [n] commence a zero. L'index [n] commence à zero.
Le nombre d arguments effectivement passes a la commande est "${#<var>[*]}". Le nombre d'arguments éffectivement passés a la commande est "${#<var>[*]}".
L valeur max de l index [n] est "${#<var>[*]} - 1". La valeur max de l'index [n] est "${#<var>[*]} - 1".
<nb_arg> : nombre d arguments attendus de la forme "min/max", "min/", "max" ou "" * <nb_arg> : nombre d'arguments attendus de la forme "min/max", "min/", "max" ou ""
si vide ou "0" alors l option est booleene. si vide ou "0" alors l'option est booléene.
la forme "min/" considere le nombre max non determine (infini) la forme "min/" considere le nombre max non determiné (infini)
<def_val>: Valeur par defaut assignee a <var> * <def_val> : Valeur par défaut assignée à <var>
Fonctionne si <nb_arg> vaut 0/1 1/1 Fonctionne si <nb_arg> vaut 0/1 1/1
<OptE> : Liste des options mutellement exclusives separees par une virgule. * <OptE> : Liste des options mutellement exclusives séparées par une virgule.
<OptI> : Liste des options inclusives separees par une virgule. * <OptI> : Liste des options inclusives séparées par une virgule.
Lors de l initialisation les marqueurs "@OPT" sont lues et analysees. Lors de l'initialisation les marqueurs "@OPT" sont lues et analysées.
Le resultat est compare aux arguments et options sousmis au script Le résultat est comparé aux arguments et options sousmis au script
et les variables suivantes son initialisees ... et les variables suivantes son initialisées ...
- SH_OPTION_<nom> : Initialisee a "1" (Vrai) ou "0" (Faux) selon que l option est respectivement utilise ou non. * SH_OPTION_<nom> : Initialisée à "1" (Vrai) ou "0" (Faux) selon que l'option est respectivement utilisée ou non.
Il existe toujours une variable par option declaree. Ceci concerne aussi les options par defaut Il existe toujours une variable par option déclarée. Ceci concerne aussi les options par défaut géré par la bibliothèque params.lib
gere par la librairie params.lib
- SH_ARG_<nom> : Cette variable existe uniquement si le champ <var> est null et si le type n est pas booleen.
Par defaut elle est initialisee a null ou avec la valeur <def_val>
Si le champ <var> est renseigne, alors SH_ARG_<nom> est remplacee pas <var>.
Si l option associee peut prendre plusieurs arguments, alors les variables
SH_ARG_<nom> ou <var> sont des tableaux dont l index commence a zero.
La taille du tableau peut etre recuperee via ${#SH_ARG_<nom>[*]} ou ${#<var>[*]}.
Les option -h, -s, -log [id], -hist [N] et -dbg N * SH_ARG_<nom> : Cette variable existe uniquement si le champ <var> est null et si le type n'est pas booleen.
sont prises en charge automatiquement. Ces noms sont donc reserves. Par défaut elle est initialisée à null ou avec la valeur <def_val>
Si le champ <var> est renseigné, alors SH_ARG_<nom> est remplacée pas <var>.
Si l'option associée peut prendre plusieurs arguments, alors les variables SH_ARG_<nom> ou <var> sont des tableaux dont l'index commence a zéro.
La taille du tableau peut etre récuperée via ${#SH_ARG_<nom>[*]} ou ${#<var>[*]}.
Les options par defaut realisent les actions suivantes : Les option -h, -s, -log [id], -hist [N] et -dbg N sont prises en charge automatiquement. Ces noms sont donc reservées.
Les options par défaut réalisent les actions suivantes :
-h : Affiche l aide du script (Ligne du cartouche qui commence par "##") -h : Affiche l aide du script (Ligne du cartouche qui commence par "##")
-s : Mode silence. Plus d'affichage sur le terminal. -s : Mode silence. Plus d'affichage sur le terminal.