# 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