maj de genparse pour générer l'aide à partir de variables HELP_DESC, HELP_ARG_DESC, ...
This commit is contained in:
parent
ca5ac77aec
commit
e9b455de2a
|
@ -145,31 +145,17 @@ Voulez-vous générer un script avec cette configuration?" X &&
|
||||||
echo >"$file" '#!/bin/bash
|
echo >"$file" '#!/bin/bash
|
||||||
'"$modeline"'
|
'"$modeline"'
|
||||||
source "$(dirname "$0")/ulib/auto" || exit 1
|
source "$(dirname "$0")/ulib/auto" || exit 1
|
||||||
|
#HELP_DESC="$scriptname: "
|
||||||
|
#HELP_ARG_DESC=
|
||||||
eval "$(genparse)"
|
eval "$(genparse)"
|
||||||
|
|
||||||
function display_help() {
|
|
||||||
uecho "$scriptname:
|
|
||||||
|
|
||||||
USAGE
|
|
||||||
$scriptname [options]
|
|
||||||
|
|
||||||
OPTIONS"
|
|
||||||
}
|
|
||||||
'
|
'
|
||||||
elif [ "$type" == default ]; then
|
elif [ "$type" == default ]; then
|
||||||
echo >"$file" '#!/bin/bash
|
echo >"$file" '#!/bin/bash
|
||||||
'"$modeline"'
|
'"$modeline"'
|
||||||
source /etc/ulibauto || exit 1
|
source /etc/ulibauto || exit 1
|
||||||
|
#HELP_DESC="$scriptname: "
|
||||||
|
#HELP_ARG_DESC=
|
||||||
eval "$(genparse)"
|
eval "$(genparse)"
|
||||||
|
|
||||||
function display_help() {
|
|
||||||
uecho "$scriptname:
|
|
||||||
|
|
||||||
USAGE
|
|
||||||
$scriptname [options]
|
|
||||||
|
|
||||||
OPTIONS"
|
|
||||||
}
|
|
||||||
'
|
'
|
||||||
elif [ "$type" == manual ]; then
|
elif [ "$type" == manual ]; then
|
||||||
echo >"$file" '#!/bin/bash
|
echo >"$file" '#!/bin/bash
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
14
|
15
|
||||||
|
|
66
ulib/base
66
ulib/base
|
@ -2778,13 +2778,20 @@ function __genparse_shortopt() {
|
||||||
shortopt="${shortopt,,}"
|
shortopt="${shortopt,,}"
|
||||||
[ -n "$shortopt" ] && echo "$shortopt"
|
[ -n "$shortopt" ] && echo "$shortopt"
|
||||||
}
|
}
|
||||||
|
HELP_DESC=
|
||||||
|
HELP_USAGE=
|
||||||
|
HELP_OPTIONS=
|
||||||
function genparse() {
|
function genparse() {
|
||||||
# Afficher une ligne de commande à évaluer pour simplifier l'utilisation de
|
# 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
|
# 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
|
# options appropriées de parse_opts sont utilisées pour reconnaître les options
|
||||||
# spécifiées par les arguments.
|
# spécifiées par les arguments.
|
||||||
# Cette fonction peut être utilisée de cette manière:
|
# Cette fonction peut être utilisée de cette manière:
|
||||||
|
# HELP_DESC=...
|
||||||
|
# HELP_ARG_DESC=... # pour chaque arg
|
||||||
# eval "$(genparse [args...])"
|
# 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
|
# 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
|
# 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
|
# option qui prend un argument. Les options générées sont des options
|
||||||
|
@ -2797,20 +2804,28 @@ function genparse() {
|
||||||
# genparse Force enCoding=utf-8 input= long-Option=
|
# genparse Force enCoding=utf-8 input= long-Option=
|
||||||
# affichera ceci:
|
# affichera ceci:
|
||||||
# function display_help() {
|
# function display_help() {
|
||||||
# uecho "USAGE
|
# [ -n "$HELP_USAGE" ] || HELP_USAGE="USAGE
|
||||||
# $scriptname [options]
|
# $scriptname [options]"
|
||||||
|
# [ -n "$HELP_OPTIONS" ] || HELP_OPTIONS="OPTIONS
|
||||||
|
# ${HELP_FORCE_OPTION:- -f, --force${HELP_FORCE_DESC:+
|
||||||
|
# $HELP_FORCE_DESC}}
|
||||||
|
# ${HELP_ENCODING_OPTION:- -c, --encoding VALUE${HELP_ENCODING_DESC:+
|
||||||
|
# ${HELP_ENCODING_DESC}}}
|
||||||
|
# ${HELP_INPUT_OPTION:- --input VALUE${HELP_INPUT_DESC:+
|
||||||
|
# ${HELP_INPUT_DESC}}}
|
||||||
|
# ${HELP_LONG_OPTION_OPTION:- -o, --long-option VALUE${HELP_LONG_OPTION_DESC:+
|
||||||
|
# ${HELP_LONG_OPTION_DESC}}}"
|
||||||
|
# uecho "${HELP_DESC:+$HELP_DESC
|
||||||
#
|
#
|
||||||
# OPTIONS
|
# }$HELP_USAGE${HELP_OPTIONS:+
|
||||||
# -f, --force
|
#
|
||||||
# -c, --encoding ENCODING
|
# $HELP_OPTIONS}"
|
||||||
# --input INPUT
|
|
||||||
# -o, --long-option LONG_OPTION"
|
|
||||||
# }
|
# }
|
||||||
#
|
#
|
||||||
# force=
|
# force=
|
||||||
# encoding=utf-8
|
# encoding=utf-8
|
||||||
# input=
|
# input=""
|
||||||
# long_option=
|
# long_option=""
|
||||||
# parse_opts "${PRETTYOPTS[@]}" \
|
# parse_opts "${PRETTYOPTS[@]}" \
|
||||||
# --help '$exit_with display_help' \
|
# --help '$exit_with display_help' \
|
||||||
# -f,--force force=1 \
|
# -f,--force force=1 \
|
||||||
|
@ -2819,8 +2834,8 @@ function genparse() {
|
||||||
# -o:,--long-option: long_option= \
|
# -o:,--long-option: long_option= \
|
||||||
# @ args -- "$@" && set -- "${args[@]}" || die "$args"
|
# @ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||||
|
|
||||||
local -a descs vars options
|
local -a names descs vars options
|
||||||
local desc var option name value shortopt
|
local i desc var option name value shortopt
|
||||||
|
|
||||||
# analyser les arguments
|
# analyser les arguments
|
||||||
for var in "$@"; do
|
for var in "$@"; do
|
||||||
|
@ -2829,6 +2844,7 @@ function genparse() {
|
||||||
shortopt="$(__genparse_shortopt "$name")"
|
shortopt="$(__genparse_shortopt "$name")"
|
||||||
option="${name,,}"
|
option="${name,,}"
|
||||||
name="${option//-/_}"
|
name="${option//-/_}"
|
||||||
|
array_add names "$name"
|
||||||
array_add descs "${shortopt:+-$shortopt, }--$option VALUE"
|
array_add descs "${shortopt:+-$shortopt, }--$option VALUE"
|
||||||
array_add vars "$(set_var_cmd "$name" "$value")"
|
array_add vars "$(set_var_cmd "$name" "$value")"
|
||||||
array_add options "${shortopt:+-$shortopt:,}--$option: $name="
|
array_add options "${shortopt:+-$shortopt:,}--$option: $name="
|
||||||
|
@ -2837,6 +2853,7 @@ function genparse() {
|
||||||
shortopt="$(__genparse_shortopt "$name")"
|
shortopt="$(__genparse_shortopt "$name")"
|
||||||
option="${name,,}"
|
option="${name,,}"
|
||||||
name="${option//-/_}"
|
name="${option//-/_}"
|
||||||
|
array_add names "$name"
|
||||||
array_add descs "${shortopt:+-$shortopt, }--$option"
|
array_add descs "${shortopt:+-$shortopt, }--$option"
|
||||||
array_add vars "$name="
|
array_add vars "$name="
|
||||||
array_add options "${shortopt:+-$shortopt,}--$option $name=1"
|
array_add options "${shortopt:+-$shortopt,}--$option $name=1"
|
||||||
|
@ -2845,19 +2862,30 @@ function genparse() {
|
||||||
|
|
||||||
# afficher la commande parse_opts
|
# afficher la commande parse_opts
|
||||||
echo -n 'function display_help() {
|
echo -n 'function display_help() {
|
||||||
uecho "\
|
[ -n "$HELP_USAGE" ] || HELP_USAGE="USAGE
|
||||||
USAGE
|
|
||||||
$scriptname'
|
$scriptname'
|
||||||
|
[ -n "$descs" ] && echo -n ' [options]'
|
||||||
|
echo '"'
|
||||||
if [ -n "$descs" ]; then
|
if [ -n "$descs" ]; then
|
||||||
echo -n ' [options]
|
echo -n ' [ -n "$HELP_OPTIONS" ] || HELP_OPTIONS="OPTIONS'
|
||||||
|
i=0
|
||||||
OPTIONS'
|
while [ $i -lt ${#descs[*]} ]; do
|
||||||
for desc in "${descs[@]}"; do
|
name="${names[$i]}"
|
||||||
|
desc="${descs[$i]}"
|
||||||
echo -n "
|
echo -n "
|
||||||
$desc"
|
\${HELP_${name^^}_OPTION:- $desc\${HELP_${name^^}_DESC:+
|
||||||
|
\${HELP_${name^^}_DESC//
|
||||||
|
/
|
||||||
|
}}}"
|
||||||
|
i=$(($i + 1))
|
||||||
done
|
done
|
||||||
|
echo '"'
|
||||||
fi
|
fi
|
||||||
echo '"
|
echo ' uecho "${HELP_DESC:+$HELP_DESC
|
||||||
|
|
||||||
|
}$HELP_USAGE${HELP_OPTIONS:+
|
||||||
|
|
||||||
|
$HELP_OPTIONS}"
|
||||||
}
|
}
|
||||||
'
|
'
|
||||||
for var in "${vars[@]}"; do
|
for var in "${vars[@]}"; do
|
||||||
|
|
Loading…
Reference in New Issue