# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
##@creator: jclain
##@created: 27/04/2016 03:19
##@modifier: jclain
##@changecount: 1
##@tags:
##@title: ulib/base.args

!! {{{parse_opts}}}
{{{
Analyser des arguments. Cette fonction doit être appelée avec une description
des options à analyser, suivie des arguments proprement dits. En fonction des
options rencontrées, certaines variables sont mises à jour.
Les arguments de cette fonction sont donc de la forme 'optdescs -- args'
}}}
!! {{{parse_args_check}}}
{{{
Simplifier l'utilisation de parse_opts(). En entrée, le tableau args doit être
initialisé avec la liste des options. En sortie, ce tableau contient la liste
des arguments restant sur la ligne de commande. En cas d'erreur, retourner 1.
Exemple d'utilisation:
args=(...)
parse_args_check "$@" || return; set -- "${args[@]}"
}}}
!! {{{parse_args}}}
{{{
Simplifier l'utilisation de parse_opts(). En entrée, le tableau args doit être
initialisé avec la liste des options. En sortie, ce tableau contient la liste
des arguments restant sur la ligne de commande. En cas d'erreur, quitter le
script avec die()
Exemple d'utilisation:
args=(...)
parse_args_check "$@"; set -- "${args[@]}"
}}}
!! {{{genparse}}}
{{{
Afficher une ligne de commande à évaluer pour simplifier l'utilisation de
parse_opts(). Une fonction display_help() par défaut est définie et les
options appropriées de parse_opts sont utilisées pour reconnaître les options
spécifiées par les arguments.
Cette fonction peut être utilisée de cette manière:
HELP_DESC=...
HELP_ARG_DESC=... # pour chaque arg
eval "$(genparse [args...])"
D'autres variables peuvent être définies: HELP_USAGE, HELP_OPTIONS,
HELP_ARG_OPTION. Consulter le source pour connaitre leur utilisation
Les arguments de cette fonction sont de la forme 'sansarg' pour une option
simple qui ne prend pas d'argument ou 'avecarg=[default-value]' pour une
option qui prend un argument. Les options générées sont des options
longues. En l'occurence, les options générées sont respectivement '--sansarg'
et '--avecarg:'
Les variables et les options sont toujours en minuscule. Pour les variables,
le caractère '-' est remplacé par '_'. Si une option contient une lettre en
majuscule, l'option courte correspondante à cette lettre sera aussi reconnue.
Par exemple, la commande suivante:
genparse Force enCoding=utf-8 input= long-Option=
affichera ceci:
function display_help() {
[ -n "$HELP_USAGE" ] || HELP_USAGE="USAGE
$scriptname [options]"
[ -n "$HELP_OPTIONS" ] || HELP_OPTIONS="OPTIONS
${HELP_FORCE_OPTION:-    -f, --force${HELP_FORCE_DESC:+
$HELP_FORCE_DESC}}
}}}
