réorganiser certaines fonctions
This commit is contained in:
parent
528d5795ec
commit
31fb39d642
|
@ -40,101 +40,12 @@ fi
|
|||
##@include base.args
|
||||
##@include base.tools
|
||||
##@include base.compat
|
||||
##@include base.deprecated
|
||||
uprovide base
|
||||
urequire base.init base.core base.string base.num base.bool base.array base.quote base.split base.args base.tools base.compat
|
||||
|
||||
## Informations sur l'hôte sur lequel tourne ce script
|
||||
# Type de système
|
||||
UNAME_SYSTEM=`uname -s`
|
||||
[ "${UNAME_SYSTEM#CYGWIN}" != "$UNAME_SYSTEM" ] && UNAME_SYSTEM=Cygwin
|
||||
[ "${UNAME_SYSTEM#MINGW32}" != "$UNAME_SYSTEM" ] && UNAME_SYSTEM=Mingw
|
||||
UNAME_MACHINE=`uname -m`
|
||||
if [ -n "$UTOOLS_CHROOT" ]; then
|
||||
# Dans un chroot, il est possible de forcer les valeurs
|
||||
[ -n "$UTOOLS_UNAME_SYSTEM" ] && eval "UNAME_SYSTEM=$UTOOLS_UNAME_SYSTEM"
|
||||
[ -n "$UTOOLS_UNAME_MACHINE" ] && eval "UNAME_MACHINE=$UTOOLS_UNAME_MACHINE"
|
||||
fi
|
||||
|
||||
## valeurs
|
||||
function setyesval() {
|
||||
# mettre la valeur normalisée de la valeur "oui" de $2 dans la variable $1
|
||||
is_yes "$2" && _setv "$1" 1 || _setv "$1" ""
|
||||
}
|
||||
function normyesval() {
|
||||
# remplacer la valeur de la variable $1 par la valeur normalisée de sa valeur "oui"
|
||||
# Si $2 est non vide, prendre cette valeur plutôt que la valeur de la variable $1
|
||||
is_yes "${2:-"${!1}"}" && _setv "$1" 1 || _setv "$1" ""
|
||||
}
|
||||
function normyesvals() {
|
||||
# remplacer les valeur des variables $1..* par les valeurs normalisées
|
||||
# respectives de leur valeur "oui"
|
||||
local __nyv_yesvar
|
||||
for __nyv_yesvar in "$@"; do
|
||||
is_yes "${!__nyv_yesvar}" && _setv "$__nyv_yesvar" 1 || _setv "$__nyv_yesvar" ""
|
||||
done
|
||||
}
|
||||
function quote_in() {
|
||||
# Comme quote_arg pour une chaine lue sur stdin
|
||||
sed 's/\\/\\\\/g
|
||||
s/"/\\"/g
|
||||
s/\$/\\$/g
|
||||
s/`/\\`/g'
|
||||
}
|
||||
function quote_sin() {
|
||||
# Pour la chaine lue sur stdin, remplacer ' par '\''. Cela permet de protéger une
|
||||
# chaine à mettre entre quotes
|
||||
sed "s/'/'\\\\''/g"
|
||||
}
|
||||
function quote_sarg() {
|
||||
# Dans la chaine $1, remplacer ' par '\''. Cette fonction utilise quote_sin,
|
||||
# puisque le shell a des difficultés à faire le rechercher/remplacer approprié
|
||||
quote_sin <<<"$1"
|
||||
}
|
||||
function quoted_sarg() {
|
||||
# Dans la chaine $1, remplacer ' par '\'', et afficher la chaine entourée de
|
||||
# quotes
|
||||
echo "'$(quote_sarg "$1")'"
|
||||
}
|
||||
function quoted_sargs() {
|
||||
# Comme quoted_sarg, mais tous les arguments sont quotés et affichés entourés de
|
||||
# quotes, ce qui permet de construire des arguments d'une ligne de commande
|
||||
local a s
|
||||
for a in "$@"; do
|
||||
s="${s:+$s }$(quoted_sarg "$a")"
|
||||
done
|
||||
recho "$s"
|
||||
}
|
||||
urequire base.deprecated
|
||||
|
||||
## variables tableaux
|
||||
function set_array_cmd() {
|
||||
# Afficher la commande permettant d'initialiser le tableau $1 avec les valeurs:
|
||||
# soit du tableau $2, soit de $3..$n si $2=="@"
|
||||
# S'il n'y a que l'argument $1, alors afficher la commande permettant de
|
||||
# recréer le tableau $1
|
||||
[ $# -eq 1 ] && set -- "$1" "$1"
|
||||
local __sac_s __sac_v __sac_f
|
||||
__sac_s="$1=("; shift
|
||||
if [ "$1" == "@" ]; then
|
||||
shift
|
||||
else
|
||||
eval "set -- \"\${$1[@]}\""
|
||||
fi
|
||||
__sac_f=1
|
||||
for __sac_v in "$@"; do
|
||||
[ -n "$__sac_f" ] && __sac_f= || __sac_s="$__sac_s "
|
||||
__sac_s="$__sac_s$(qvalm "$__sac_v")"
|
||||
done
|
||||
__sac_s="$__sac_s)"
|
||||
echo "$__sac_s"
|
||||
}
|
||||
function set_array() {
|
||||
# Soit $1 un tableau à créer. Si $2=="@", créer le tableau $1 avec les valeurs
|
||||
# $3..$n. Sinon, créer le tableau $1 avec les valeurs du tableau $2.
|
||||
# Cette fonction n'existe que comme un pendant de set_var(), mais le véritable
|
||||
# intérêt est la fonction set_array_cmd(). cf array_copy() pour une version plus
|
||||
# efficace de la copie de tableaux
|
||||
eval "$(set_array_cmd "$@")"
|
||||
}
|
||||
function array_count() {
|
||||
# retourner le nombre d'éléments du tableau $1
|
||||
eval "echo \${#$1[*]}"
|
||||
|
@ -1523,7 +1434,7 @@ function get_archive_basename() {
|
|||
function get_archive_appname() {
|
||||
# Obtenir le nom probable de l'application ou du framework contenu dans
|
||||
# l'archive $1, e.g:
|
||||
# get_archive_versionsuffix app-0.1.tgz
|
||||
# get_archive_appname app-0.1.tgz
|
||||
# --> app
|
||||
local appname="$(basename -- "$1")"
|
||||
# supprimer l'extension
|
||||
|
@ -1570,7 +1481,7 @@ function get_archive_versionsuffix() {
|
|||
function get_archive_version() {
|
||||
# Obtenir la valeur probable de la version de l'application ou du framework
|
||||
# contenu dans l'archive $1, e.g:
|
||||
# get_archive_versionsuffix app-0.1.tgz
|
||||
# get_archive_version app-0.1.tgz
|
||||
# --> 0.1
|
||||
local basename="$(get_archive_basename "$1")"
|
||||
echo "$basename" | awk '{
|
||||
|
|
|
@ -29,6 +29,24 @@ function yesval() {
|
|||
is_yes "$1" && echo 1
|
||||
}
|
||||
|
||||
function setyesval() {
|
||||
# mettre la valeur normalisée de la valeur "oui" de $2 dans la variable $1
|
||||
is_yes "$2" && _setv "$1" 1 || _setv "$1" ""
|
||||
}
|
||||
function normyesval() {
|
||||
# remplacer la valeur de la variable $1 par la valeur normalisée de sa valeur "oui"
|
||||
# Si $2 est non vide, prendre cette valeur plutôt que la valeur de la variable $1
|
||||
is_yes "${2:-"${!1}"}" && _setv "$1" 1 || _setv "$1" ""
|
||||
}
|
||||
function normyesvals() {
|
||||
# remplacer les valeur des variables $1..* par les valeurs normalisées
|
||||
# respectives de leur valeur "oui"
|
||||
local __nyv_yesvar
|
||||
for __nyv_yesvar in "$@"; do
|
||||
is_yes "${!__nyv_yesvar}" && _setv "$__nyv_yesvar" 1 || _setv "$__nyv_yesvar" ""
|
||||
done
|
||||
}
|
||||
|
||||
function setb() {
|
||||
# Lancer la commande $2..@ en supprimant la sortie standard. Si la commande
|
||||
# retourne vrai, assigner la valeur 1 à la variable $1. Sinon, lui assigner la
|
||||
|
|
|
@ -29,6 +29,27 @@ function quote_seds() { qseds "$@"; }
|
|||
function quote_form() { _qform "$@"; }
|
||||
function quoted_form() { qform "$@"; }
|
||||
|
||||
## Fonctions dépréciées
|
||||
|
||||
function set_array_cmd() {
|
||||
# Afficher la commande permettant d'initialiser le tableau $1 avec les valeurs:
|
||||
# soit du tableau $2, soit de $3..$n si $2=="@"
|
||||
# S'il n'y a que l'argument $1, alors afficher la commande permettant de
|
||||
# recréer le tableau $1
|
||||
if [ $# -eq 1 ]; then echo_seta "$1"
|
||||
elif [ "$2" == @ ]; then echo_seta "$1" "${@:3}"
|
||||
else eval "echo_seta \"\$1\" \"\${$2[@]}\""
|
||||
fi
|
||||
}
|
||||
function set_array() {
|
||||
# Soit $1 un tableau à créer. Si $2=="@", créer le tableau $1 avec les valeurs
|
||||
# $3..$n. Sinon, créer le tableau $1 avec les valeurs du tableau $2.
|
||||
# Cette fonction n'existe que comme un pendant de set_var(), mais le véritable
|
||||
# intérêt est la fonction set_array_cmd(). cf array_copy() pour une version plus
|
||||
# efficace de la copie de tableaux
|
||||
eval "$(set_array_cmd "$@")"
|
||||
}
|
||||
|
||||
## Compatibilité avec bash >=2.x
|
||||
|
||||
if [ -n "$BASH_VERSINFO" -a "${BASH_VERSINFO[0]}" -lt 4 ]; then
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
## Fonctions dépréciées
|
||||
##@cooked nocomments
|
||||
uprovide base.deprecated
|
||||
|
||||
# base.array
|
||||
|
||||
function set_array_cmd() {
|
||||
# Afficher la commande permettant d'initialiser le tableau $1 avec les valeurs:
|
||||
# soit du tableau $2, soit de $3..$n si $2=="@"
|
||||
# S'il n'y a que l'argument $1, alors afficher la commande permettant de
|
||||
# recréer le tableau $1
|
||||
if [ $# -eq 1 ]; then echo_seta "$1"
|
||||
elif [ "$2" == @ ]; then echo_seta "$1" "${@:3}"
|
||||
else eval "echo_seta \"\$1\" \"\${$2[@]}\""
|
||||
fi
|
||||
}
|
||||
function set_array() {
|
||||
# Soit $1 un tableau à créer. Si $2=="@", créer le tableau $1 avec les valeurs
|
||||
# $3..$n. Sinon, créer le tableau $1 avec les valeurs du tableau $2.
|
||||
# Cette fonction n'existe que comme un pendant de set_var(), mais le véritable
|
||||
# intérêt est la fonction set_array_cmd(). cf array_copy() pour une version plus
|
||||
# efficace de la copie de tableaux
|
||||
eval "$(set_array_cmd "$@")"
|
||||
}
|
||||
|
||||
# base.misc
|
||||
|
||||
function quote_in() {
|
||||
# Comme quote_arg pour une chaine lue sur stdin
|
||||
sed 's/\\/\\\\/g
|
||||
s/"/\\"/g
|
||||
s/\$/\\$/g
|
||||
s/`/\\`/g'
|
||||
}
|
||||
function quote_sin() {
|
||||
# Pour la chaine lue sur stdin, remplacer ' par '\''. Cela permet de protéger une
|
||||
# chaine à mettre entre quotes
|
||||
sed "s/'/'\\\\''/g"
|
||||
}
|
||||
function quote_sarg() {
|
||||
# Dans la chaine $1, remplacer ' par '\''. Cette fonction utilise quote_sin,
|
||||
# puisque le shell a des difficultés à faire le rechercher/remplacer approprié
|
||||
quote_sin <<<"$1"
|
||||
}
|
||||
function quoted_sarg() {
|
||||
# Dans la chaine $1, remplacer ' par '\'', et afficher la chaine entourée de
|
||||
# quotes
|
||||
echo "'$(quote_sarg "$1")'"
|
||||
}
|
||||
function quoted_sargs() {
|
||||
# Comme quoted_sarg, mais tous les arguments sont quotés et affichés entourés de
|
||||
# quotes, ce qui permet de construire des arguments d'une ligne de commande
|
||||
local a s
|
||||
for a in "$@"; do
|
||||
s="${s:+$s }$(quoted_sarg "$a")"
|
||||
done
|
||||
recho "$s"
|
||||
}
|
|
@ -33,10 +33,17 @@ export TMPDIR="${TMPDIR:-${TMP:-${TEMP:-/tmp}}}"
|
|||
[ -z "$USER" -a -n "$LOGNAME" ] && export USER="$LOGNAME"
|
||||
|
||||
# Le fichier nutoolsrc doit être chargé systématiquement
|
||||
# note: ajouter 'true' après le chargement de *nutoolsrc pour éviter que le
|
||||
# module se termine sur une erreur si ces fichiers n'existent pas, ce qui
|
||||
# empêcherait de le charger avec urequire()
|
||||
[ -f /etc/debian_chroot ] && UTOOLS_CHROOT=1
|
||||
[ -f /etc/nutoolsrc ] && . /etc/nutoolsrc
|
||||
[ -f ~/.nutoolsrc ] && . ~/.nutoolsrc
|
||||
true
|
||||
|
||||
# Type de système sur lequel tourne le script
|
||||
UNAME_SYSTEM=`uname -s`
|
||||
[ "${UNAME_SYSTEM#CYGWIN}" != "$UNAME_SYSTEM" ] && UNAME_SYSTEM=Cygwin
|
||||
[ "${UNAME_SYSTEM#MINGW32}" != "$UNAME_SYSTEM" ] && UNAME_SYSTEM=Mingw
|
||||
UNAME_MACHINE=`uname -m`
|
||||
if [ -n "$UTOOLS_CHROOT" ]; then
|
||||
# Dans un chroot, il est possible de forcer les valeurs
|
||||
[ -n "$UTOOLS_UNAME_SYSTEM" ] && eval "UNAME_SYSTEM=$UTOOLS_UNAME_SYSTEM"
|
||||
[ -n "$UTOOLS_UNAME_MACHINE" ] && eval "UNAME_MACHINE=$UTOOLS_UNAME_MACHINE"
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue