changer l'API de base.bool

This commit is contained in:
Jephte CLAIN 2014-10-18 20:37:04 +04:00
parent 938b12245f
commit 2a1807565d
2 changed files with 22 additions and 12 deletions

View File

@ -1 +1 @@
004002000 005000000

View File

@ -29,19 +29,19 @@ function yesval() {
is_yes "$1" && echo 1 is_yes "$1" && echo 1
} }
function _setb() { function setb() {
# Lancer la commande $2..@ en supprimant l'affichage standard et d'erreur. Si la # Lancer la commande $2..@ en supprimant la sortie standard. Si la commande
# commande retourne vrai, assigner la valeur 1 à la variable $1. Sinon, lui # retourne vrai, assigner la valeur 1 à la variable $1. Sinon, lui assigner la
# assigner la valeur "" # valeur ""
# note: en principe, la syntaxe est '_setb var cmd args...'. cependant, la # note: en principe, la syntaxe est 'setb var cmd args...'. cependant, la
# syntaxe '_setb var=cmd args...' est supportée aussi # syntaxe 'setb var=cmd args...' est supportée aussi
local __s_var="$1"; shift local __s_var="$1"; shift
if [[ "$__s_var" == *=* ]]; then if [[ "$__s_var" == *=* ]]; then
set -- "${__s_var#*=}" "$@" set -- "${__s_var#*=}" "$@"
__s_var="${__s_var%%=*}" __s_var="${__s_var%%=*}"
fi fi
local __s_r local __s_r
if "$@" >&/dev/null; then if "$@" >/dev/null; then
eval "$__s_var=1" eval "$__s_var=1"
else else
__s_r=$? __s_r=$?
@ -49,17 +49,27 @@ function _setb() {
return $__s_r return $__s_r
fi fi
} }
function _setb() {
# Comme la fonction setb() mais ne supporte que la syntaxe '_setb var cmds...'
# Cette fonction est légèrement plus rapide que setb()
local __s_var="$1"; shift
if "$@" >/dev/null; then
eval "$__s_var=1"
else
eval "$__s_var="
fi
}
function evalb() { function evalb() {
# Lancer les commandes $@ avec evalx() en supprimant l'affichage standard et # Lancer la commande $@ avec evalx() en supprimant la sortie standard. Si la
# d'erreur. Si les commandes retournent vrai, afficher 1. Sinon, afficher "" # commande retourne vrai, afficher 1. Sinon, afficher ""
if evalx "$@" >&/dev/null; then if evalx "$@" >/dev/null; then
echo 1 echo 1
else else
return $? return $?
fi fi
} }
function setb() { function setxb() {
# équivalent à setx $1 evalb $2..@ # équivalent à setx $1 evalb $2..@
local __s_var="$1"; shift local __s_var="$1"; shift
if [[ "$__s_var" == *=* ]]; then if [[ "$__s_var" == *=* ]]; then