modifs.mineures sans commentaires
This commit is contained in:
parent
69f3ab76b1
commit
d7323d7d45
|
@ -94,6 +94,8 @@ action
|
||||||
les fonctions suivantes sont définies:
|
les fonctions suivantes sont définies:
|
||||||
* 'inc@ NAME' incrémente la variable NAME -- c'est le comportement de set@ si
|
* 'inc@ NAME' incrémente la variable NAME -- c'est le comportement de set@ si
|
||||||
l'option est sans argument
|
l'option est sans argument
|
||||||
|
* 'dec@ NAME' décrémente la variable NAME, et la rend vide quand le compte
|
||||||
|
arrive à zéro
|
||||||
* 'res@ NAME VALUE' initialise la variable NAME avec la valeur de l'option (ou
|
* 'res@ NAME VALUE' initialise la variable NAME avec la valeur de l'option (ou
|
||||||
VALUE si la valeur de l'option est vide) -- c'est le comportement de set@
|
VALUE si la valeur de l'option est vide) -- c'est le comportement de set@
|
||||||
si l'option prend un argument
|
si l'option prend un argument
|
||||||
|
@ -199,16 +201,14 @@ function __parse_args() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## puis traiter les options
|
## puis traiter les options
|
||||||
local __defname __defvalue __add __action option_ name_ value_
|
local __defname __fixvalue __defvalue __add __action option_ name_ value_
|
||||||
function inc@() {
|
function inc@() {
|
||||||
if [ -n "$2" ]; then
|
eval "[ -n \"\$$1\" ] || let $1=0"
|
||||||
# forcer une valeur
|
eval "let $1=$1+1"
|
||||||
eval "$1=\"\$2\""
|
}
|
||||||
else
|
function dec@() {
|
||||||
# incrémenter
|
eval "[ -n \"\$$1\" ] && let $1=$1-1"
|
||||||
eval "[ -n \"\$$1\" ] || let $1=0"
|
eval "[ $1 -eq 0 ] && $1="
|
||||||
eval "let $1=$1+1"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
function res@() {
|
function res@() {
|
||||||
local __value="${value_:-$2}"
|
local __value="${value_:-$2}"
|
||||||
|
@ -219,20 +219,18 @@ function __parse_args() {
|
||||||
eval "$1+=(\"\$__value\")"
|
eval "$1+=(\"\$__value\")"
|
||||||
}
|
}
|
||||||
function set@() {
|
function set@() {
|
||||||
if [ -n "$__witharg" ]; then
|
if [ -n "$__fixvalue" ]; then
|
||||||
if [ -n "$__add" ]; then
|
res@ "$@"
|
||||||
if is_array "$1"; then
|
elif [ -n "$__witharg" ]; then
|
||||||
add@ "$@"
|
if is_array "$1"; then
|
||||||
elif ! is_defined "$1"; then
|
add@ "$@"
|
||||||
# première occurrence: variable
|
elif ! is_defined "$1"; then
|
||||||
res@ "$@"
|
# première occurrence: variable
|
||||||
else
|
|
||||||
# deuxième occurence: tableau
|
|
||||||
[ -z "${!1}" ] && eval "$1=()"
|
|
||||||
add@ "$@"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
res@ "$@"
|
res@ "$@"
|
||||||
|
else
|
||||||
|
# deuxième occurence: tableau
|
||||||
|
[ -z "${!1}" ] && eval "$1=()"
|
||||||
|
add@ "$@"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
inc@ "$@"
|
inc@ "$@"
|
||||||
|
@ -397,22 +395,22 @@ function __parse_opt() {
|
||||||
# analyser l'action
|
# analyser l'action
|
||||||
if [ "${1#\$}" != "$1" ]; then
|
if [ "${1#\$}" != "$1" ]; then
|
||||||
name_="$__defname"
|
name_="$__defname"
|
||||||
|
__fixvalue=
|
||||||
__defvalue=
|
__defvalue=
|
||||||
__add=
|
|
||||||
__action="${1#\$}"
|
__action="${1#\$}"
|
||||||
else
|
else
|
||||||
if [ "$1" == . ]; then
|
if [ "$1" == . ]; then
|
||||||
name_="$__defname"
|
name_="$__defname"
|
||||||
|
__fixvalue=
|
||||||
__defvalue=
|
__defvalue=
|
||||||
__add=1
|
|
||||||
elif [[ "$1" == *=* ]]; then
|
elif [[ "$1" == *=* ]]; then
|
||||||
name_="${1%%=*}"
|
name_="${1%%=*}"
|
||||||
|
__fixvalue=1
|
||||||
__defvalue="${1#*=}"
|
__defvalue="${1#*=}"
|
||||||
__add=
|
|
||||||
else
|
else
|
||||||
name_="$1"
|
name_="$1"
|
||||||
|
__fixvalue=
|
||||||
__defvalue=
|
__defvalue=
|
||||||
__add=1
|
|
||||||
fi
|
fi
|
||||||
__action="$(qvals set@ "$name_" "$__defvalue")"
|
__action="$(qvals set@ "$name_" "$__defvalue")"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -8,6 +8,7 @@ function pa() {
|
||||||
unset count fixed mopt dmopt oopt doopt autoinc autoval a1 a2 a3 a4
|
unset count fixed mopt dmopt oopt doopt autoinc autoval a1 a2 a3 a4
|
||||||
count=
|
count=
|
||||||
fixed=
|
fixed=
|
||||||
|
efixed=1
|
||||||
mopt=
|
mopt=
|
||||||
dmopt=
|
dmopt=
|
||||||
oopt=
|
oopt=
|
||||||
|
@ -22,6 +23,7 @@ function pa() {
|
||||||
"tester la gestion des arguments"
|
"tester la gestion des arguments"
|
||||||
-o,--eopt count "incrémenter count"
|
-o,--eopt count "incrémenter count"
|
||||||
-f,--fixed fixed=42 "spécifier fixed"
|
-f,--fixed fixed=42 "spécifier fixed"
|
||||||
|
-e,--efixed efixed= "spécifier efixed"
|
||||||
-a:,--mopt mopt= "spécifier mopt"
|
-a:,--mopt mopt= "spécifier mopt"
|
||||||
-A:,--dmopt dmopt=default "spécifier dmopt"
|
-A:,--dmopt dmopt=default "spécifier dmopt"
|
||||||
-b::,--oopt oopt= "spécifier oopt"
|
-b::,--oopt oopt= "spécifier oopt"
|
||||||
|
@ -41,6 +43,7 @@ function pa() {
|
||||||
pa
|
pa
|
||||||
assert_z "$count"
|
assert_z "$count"
|
||||||
assert_z "$fixed"
|
assert_z "$fixed"
|
||||||
|
assert_eq "$efixed" 1
|
||||||
assert_z "$mopt"
|
assert_z "$mopt"
|
||||||
assert_z "$dmopt"
|
assert_z "$dmopt"
|
||||||
assert_z "$oopt"
|
assert_z "$oopt"
|
||||||
|
@ -69,6 +72,14 @@ assert_eq "$fixed" 42
|
||||||
pa -fff
|
pa -fff
|
||||||
assert_eq "$fixed" 42
|
assert_eq "$fixed" 42
|
||||||
|
|
||||||
|
assert_same "$efixed" "1"
|
||||||
|
pa -e
|
||||||
|
assert_same "$efixed" ""
|
||||||
|
pa -ee
|
||||||
|
assert_same "$efixed" ""
|
||||||
|
pa -eee
|
||||||
|
assert_same "$efixed" ""
|
||||||
|
|
||||||
pa -a ""
|
pa -a ""
|
||||||
assert_not_array mopt
|
assert_not_array mopt
|
||||||
assert_same "$mopt" ""
|
assert_same "$mopt" ""
|
||||||
|
|
Loading…
Reference in New Issue