description des modifications
This commit is contained in:
parent
36eec4a517
commit
efc60b36ab
81
TODO.md
81
TODO.md
|
@ -1,3 +1,84 @@
|
||||||
# TODO
|
# TODO
|
||||||
|
|
||||||
|
Faire des fonctions pour faciliter la gestion de configuration par défaut
|
||||||
|
|
||||||
|
La configuration est décrite dans un tableau nommé CONFIG par défaut
|
||||||
|
~~~
|
||||||
|
CONFIG=(
|
||||||
|
"-*- coding: utf-8 mode: sh -*-"
|
||||||
|
"# description de la variable NAME"
|
||||||
|
NAME=default_value
|
||||||
|
"# description de la variable LONG"
|
||||||
|
"# sur plusieurs lignes"
|
||||||
|
LONG="very long value"
|
||||||
|
)
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* si le premier élément commence par `-*-` alors il contient les informations
|
||||||
|
pour générer la ligne de mode pour le fichier de config s'il faut le créer de
|
||||||
|
toutes pièces.
|
||||||
|
* chaque élément qui commence par `#` est une description de la variable qui
|
||||||
|
suit. plusieurs éléments sont fusionnés le cas échéant.
|
||||||
|
* les éléments de la forme NAME=DEFAULT_VALUE définissent une variable et sa
|
||||||
|
valeur par défaut.
|
||||||
|
|
||||||
|
A partir de ce tableau, la fonction upgrade_config() permet de créer un fichier
|
||||||
|
de config s'il n'existe pas, ou de la mettre à jour avec de nouvelles variables
|
||||||
|
s'il existe. Soit la commande suivante
|
||||||
|
~~~
|
||||||
|
upgrade_config path/to/config.conf CONFIG
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Si le fichier config.conf n'existe pas, il est créé ainsi:
|
||||||
|
~~~
|
||||||
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
|
# description de la variable NAME
|
||||||
|
#NAME=default_value
|
||||||
|
|
||||||
|
# description de la variable LONG
|
||||||
|
# sur plusieurs lignes
|
||||||
|
#LONG="very long value"
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Si le fichier config contenait ceci:
|
||||||
|
~~~
|
||||||
|
# -*- coding: utf-8 mode: conf -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
|
# description de la variable LONG
|
||||||
|
LONG="my value"
|
||||||
|
~~~
|
||||||
|
il est transformé en ceci, c'est à dire que la définition manquante de NAME est
|
||||||
|
rajoutée:
|
||||||
|
~~~
|
||||||
|
# -*- coding: utf-8 mode: conf -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
|
||||||
|
# description de la variable LONG
|
||||||
|
LONG="my value"
|
||||||
|
|
||||||
|
# description de la variable NAME
|
||||||
|
#NAME=default_value
|
||||||
|
~~~
|
||||||
|
|
||||||
|
A partir du tableau, la fonction load_config() permet de charger le fichier de
|
||||||
|
config en ne sélectionnant que les variables qui sont mentionnées dans le
|
||||||
|
tableau. Soit le fichier de configuration suivant
|
||||||
|
~~~
|
||||||
|
NAME=value
|
||||||
|
LONG=something
|
||||||
|
ROGUE=data
|
||||||
|
~~~
|
||||||
|
et les commandes suivantes
|
||||||
|
~~~
|
||||||
|
NAME=x
|
||||||
|
LONG=y
|
||||||
|
ROGUE=inchangée
|
||||||
|
load_config path/to/config.conf CONFIG
|
||||||
|
echo "NAME=$NAME, LONG=$LONG, ROGUE=$ROGUE"
|
||||||
|
~~~
|
||||||
|
le résultat est le suivant
|
||||||
|
~~~
|
||||||
|
NAME=value, LONG=something, ROGUE=inchangée
|
||||||
|
~~~
|
||||||
|
|
||||||
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
|
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
|
Loading…
Reference in New Issue