# ulib/conf

## `conf_enable`
~~~
Dans le fichier de configuration $1, activer les paramètres $2..*
Chaque argument de cette fonction correspond à une directive du fichier de
configuration et doit être de la forme name[=value]
Dans tous les cas, toutes les directives de ce nom sont recherchées et
décommentées. Si value est précisée, les directives sont mises à jour. Si
la directive ne figure pas dans le fichier, elle y est rajoutée à la fin
avec la valeur spécifiée.
Retourner 0 si une modification a été faite dans le fichier, 1 sinon
~~~
## `conf_enableq`
~~~
Comme conf_enable(), mais s'assure que les valeurs sont quotées dans le
fichier. Ceci permet de stocker des valeurs avec des espaces ou des
caractères spéciaux.
~~~
## `conf_disable`
~~~
Dans le fichier de configuration $1, désactiver les paramètres $2..*
Chaque argument de cette fonction correspond à une directive du fichier de
configuration et doit être de la forme name[=value]
Toutes les directives de ce noms sont recherchées et commentées. La valeur
si elle est spécifiée, est ignorée. Si la directive ne figure pas dans le
fichier, c'est un NOP.
Retourner 0 si une modification a été faite dans le fichier, 1 sinon
~~~
## `conf_append`
~~~
Dans le fichier de configuration $1, augmenter les valeurs des variables
correspondant aux paramètres $2..*
Chaque argument de cette fonction correspond à une variable du fichier de
configuration, et doit être de la forme name=value
Une ligne 'name="${name:+$name:}$value"' est générée à la fin du fichier
de configuration.
Par défaut, le séparateur CONF_APPEND_SEP vaut ':', mais il est possible
de changer cette valeur, de façon globale
Retourner 0 si une modification a été faite dans le fichier, 1 sinon
~~~
## `conf_array_append`
~~~
Dans le fichier de configuration $1, augmenter les valeurs des variables
de tableau correspondant aux paramètres $2..*
Chaque argument de cette fonction correspond à une variable du fichier de
configuration, et doit être de la forme name=value
Une ligne name=("${name[@]}" "$value") est générée à la fin du fichier de
configuration
Retourner 0 si une modification a été faite dans le fichier, 1 sinon
~~~
## `conf_check`
~~~
Dans le fichier de configuration $1, tester si tous les paramètres $2..*
sont présents.
Chaque argument de cette fonction correspond à une variable du fichier de
configuration, et doit être de la forme name[=value]
Si une valeur est spécifiée, vérifier que le fichier contient la valeur
correspondante. Sinon, tester uniquement la présence de la directive.
~~~
## `aconf_enable`
~~~
Dans le fichier de configuration $1, activer les paramètres $2..*
Chaque argument de cette fonction correspond à une directive du fichier de
configuration et doit être de la forme name[=value]
Toutes les directives de ce nom sont recherchées et décommentées, et la
valeur mise à jour. Si la directive ne figure pas dans le fichier, elle y
est rajoutée à la fin. A cause du mode opératoire, cette fonction ne
convient pas pour les directives dont le nom peut apparaitre plusieurs
fois dans le fichier
Retourner 0 si une modification a été faite dans le fichier, 1 sinon
~~~
## `aconf_disable`
~~~
Dans le fichier de configuration $1, désactiver les paramètres $2..*
Chaque argument de cette fonction correspond à une directive du fichier de
configuration et doit être de la forme name[=value]
Si la valeur est précisée, la directive correspondant à ce nom et cette
valeur est recherchée et commentée. Sinon, toutes les directives de ce
noms sont recherchées et commentées. Si la directive ne figure pas dans le
fichier, c'est un NOP.
Retourner 0 si une modification a été faite dans le fichier, 1 sinon
~~~
## `aconf_append`
~~~
Dans le fichier de configuration $1, ajouter des directives correspondant
aux paramètres $2..*
Chaque argument de cette fonction correspond à une directive du fichier de
configuration et doit être de la forme name=value
Une ligne '$name $value' est ajoutée à la fin du fichier de configuration
Retourner 0 si une modification a été faite dans le fichier, 1 sinon
~~~
## `aconf_array_append`
## `aconf_check`
~~~
Dans le fichier de configuration $1, tester si tous les paramètres $2..*
sont présents.
Chaque argument de cette fonction correspond à une variable du fichier de
configuration, et doit être de la forme name[=value]
Si une valeur est spécifiée, vérifier que le fichier contient la valeur
correspondante. Sinon, tester uniquement la présence de la directive.
~~~
## `mconf_enable`
~~~
Dans le fichier de configuration $1, activer les paramètres $3..* de la
section $2
Chaque argument de cette fonction correspond à une directive du fichier de
configuration et doit être de la forme name[=value]
Toutes les directives de ce nom sont recherchées et décommentées, et la
valeur mise à jour. Si la directive ne figure pas dans le fichier, elle y
est rajoutée à la fin. A cause du mode opératoire, cette fonction ne
convient pas pour les directives dont le nom peut apparaitre plusieurs
fois dans le fichier
Retourner 0 si une modification a été faite dans le fichier, 1 sinon
Cette fonction nécessite gawk et ignore la locale
~~~
## `mconf_disable`
~~~
Dans le fichier de configuration $1, désactiver les paramètres $3..* de la
section $2.
Chaque argument de cette fonction correspond à une directive du fichier de
configuration et doit être de la forme name[=value]
Si la valeur est précisée, la directive correspondant à ce nom et cette
valeur est recherchée et commentée. Sinon, toutes les directives de ce
noms sont recherchées et commentées. Si la directive ne figure pas dans le
fichier, c'est un NOP.
Retourner 0 si une modification a été faite dans le fichier, 1 sinon
Cette fonction nécessite gawk et ignore la locale
~~~
## `mconf_append`
~~~
Dans le fichier de configuration $1, ajouter des directives correspondant
aux paramètres $3..* dans la section $2
Chaque argument de cette fonction correspond à une directive du fichier de
configuration et doit être de la forme name=value
Une ligne '$name = $value' est ajoutée à la fin de la section, qui est
créée si nécessaire à la fin du fichier de configuration
Retourner 0 si une modification a été faite dans le fichier, 1 sinon
Cette fonction nécessite gawk et ignore la locale
~~~
## `mconf_array_append`
## `mconf_check`
~~~
Dans le fichier de configuration $1, tester si tous les paramètres $3..*
sont présents dans la section $2
Chaque argument de cette fonction correspond à une variable du fichier de
configuration, et doit être de la forme name[=value]
Si une valeur est spécifiée, vérifier que le fichier contient la valeur
correspondante. Sinon, tester uniquement la présence de la directive.
Cette fonction nécessite gawk et ignore la locale
~~~
## `gconf_addline`
~~~
USAGE
gconf_addline configfile -a BEGIN -z END NEWLINE
Dans le fichier de configuration $1, ajouter la ligne NEWLINE entre les lignes
BEGIN et END.
-a BEGIN
Spécifier une expression pour matcher une ligne de type BEGIN. Si
cette option n'est pas spécifiée, on considère que le début de fichier
matche la ligne BEGIN: la ligne NEWLINE est ajoutée dès que possible.
Les lignes sont matchées dans l'ordre, i.e. avec '-a 1 -a 2', il faut
d'abord trouver la ligne 1 puis la ligne 2, sinon, le test n'est pas
concluant.
-t LINE
Si après avoir matché toutes les lignes BEGIN, la ligne LINE est
rencontrée, alors considérer que la ligne à rajouter existe déjà et
qu'il ne faut pas la rajouter de nouveau
-r LINE
Si après avoir matché toutes les lignes BEGIN, la ligne LINE est
rencontrée, alors considérer que la ligne à rajouter existe et qu'il
faut la mettre à jour. Supprimer la ligne existante et la remplacer
par la nouvelle ligne.
-z END
Spécifier une expression pour matcher la ligne de type END. Que cette
option soit ou non spécifiée, on considère toujours que la fin de
fichier matche la ligne END. Ainsi, si END n'est pas trouvée, la ligne
NEWLINE est ajoutée à la fin du fichier.
Dès que la ligne END est rencontrée, et si aucun des tests -t ou -r
n'est concluant, alors ajouter la nouvelle ligne avant celle-ci
-n MAX[=1]
Ajouter au plus MAX occurences de NEWLINE. Après avoir matché END, le
cycle recommence, au plus MAX-1 fois. Utiliser MAX=-1 pour désactiver
la limite
Cette fonction nécessite gawk et ignore la locale
Retourner 0 si l'ajout s'est fait correctement. Retourner 1 si BEGIN n'a
pas été trouvé, et donc aucun ajout n'a été effectué. Retourner 2 si une
erreur quelconque s'est produite
~~~
## `writelines_maybe`

-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary