support de bash 3.x sur macosx: ajout d'une fonction tolower() pour abstraire le passage d'une valeur en minuscule

This commit is contained in:
Jephté Clain 2014-08-28 10:13:56 +04:00
parent 9d68a96138
commit fcf60b2bca
3 changed files with 29 additions and 5 deletions

View File

@ -1 +1 @@
001002000
001003000

View File

@ -132,6 +132,14 @@ function nef() {
}
## valeurs
function tolower() {
# afficher en minuscule la valeur $1..*
echo ${*,,}
}
function toupper() {
# afficher en majuscule la valeur $1..*
echo ${*^^}
}
function isnum() {
# retourner vrai si $1 est une valeur numérique entière (positive ou négative)
[ ${#1} -gt 0 ] || return 1
@ -2909,8 +2917,7 @@ function __po_process_options() {
function __genparse_shortopt() {
local LC_COLLATE=C
local shortopt="${1//[^A-Z]}"
shortopt="${shortopt:0:1}"
shortopt="${shortopt,,}"
shortopt="$(tolower "${shortopt:0:1}")"
[ -n "$shortopt" ] && echo "$shortopt"
}
HELP_DESC=
@ -2977,7 +2984,7 @@ function genparse() {
if [[ "$var" == *=* ]]; then
splitvar "$var" name value
shortopt="$(__genparse_shortopt "$name")"
option="${name,,}"
option="$(tolower "$name")"
name="${option//-/_}"
array_add names "$name"
array_add descs "${shortopt:+-$shortopt, }--$option VALUE"
@ -2986,7 +2993,7 @@ function genparse() {
else
name="$var"
shortopt="$(__genparse_shortopt "$name")"
option="${name,,}"
option="$(tolower "$name")"
name="${option//-/_}"
array_add names "$name"
array_add descs "${shortopt:+-$shortopt, }--$option"

View File

@ -16,6 +16,23 @@ if check_sysinfos -s macosx; then
function _nl2cr() { _nl2lf | awk 'BEGIN { ORS="" } { print $0 "\r" }'; }
# sed -i demande un argument
function sedi() { sed -i '' "$@"; }
# Sous MacOSX, la version de bash (3.x) ne supporte pas les opérateurs ,, et ^^
function tolower() { tr A-Z a-z <<<"$*"; }
function toupper() { tr a-z A-Z <<<"$*"; }
function is_yes() {
case "$(tolower "$1")" in
o|oui|y|yes|v|vrai|t|true|on) return 0;;
esac
isnum "$1" && [ "$1" -ne 0 ] && return 0
return 1
}
function is_no() {
case "$(tolower "$1")" in
n|non|no|f|faux|false|off) return 0;;
esac
isnum "$1" && [ "$1" -eq 0 ] && return 0
return 1
}
## gestion des arguments
function __po_check_options() {