# -*- 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}} }}}