diff --git a/ulib/conf b/ulib/conf index 94c90d9..c7a386a 100644 --- a/ulib/conf +++ b/ulib/conf @@ -646,6 +646,9 @@ function gconf_addline() { # 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 eval "$(utools_local)" local -a beginlines newlines @@ -658,20 +661,20 @@ function gconf_addline() { -n:,--max: max= \ @ args -- "$@" && set -- "${args[@]}" || { eerror "$args" - return 1 + return 2 } conf="$1"; shift [ -n "$conf" ] || { eerror "Vous devez spécifier le fichier à modifier" - return 1 + return 2 } [ -f "$conf" ] || { eerror "$conf: fichier introuvable" - return 1 + return 2 } [ $# -gt 0 ] || { eerror "Vous devez spécifier la ligne à rajouter" - return 1 + return 2 } [ -n "$max" ] || max=1 newlines=("$@") @@ -683,6 +686,7 @@ BEGIN { found = 0 writeline = 1 if (beginlines_count == 0) found = 1 + modified = 0 } function writelines_maybe() { if (writeline) { @@ -690,6 +694,7 @@ function writelines_maybe() { print newlines[i] } writeline = 0 + modified = 1 } } @@ -721,6 +726,8 @@ END { if (max != 0 && found && writeline) { writelines_maybe() } + if (modified) exit 0 + else exit 1 } ' edebug "$script"