réorganiser certaines fonctions
This commit is contained in:
parent
528d5795ec
commit
31fb39d642
|
@ -40,101 +40,12 @@ fi
|
||||||
##@include base.args
|
##@include base.args
|
||||||
##@include base.tools
|
##@include base.tools
|
||||||
##@include base.compat
|
##@include base.compat
|
||||||
|
##@include base.deprecated
|
||||||
uprovide base
|
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
|
urequire base.init base.core base.string base.num base.bool base.array base.quote base.split base.args base.tools base.compat
|
||||||
|
urequire base.deprecated
|
||||||
## 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"
|
|
||||||
}
|
|
||||||
|
|
||||||
## variables tableaux
|
## 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() {
|
function array_count() {
|
||||||
# retourner le nombre d'éléments du tableau $1
|
# retourner le nombre d'éléments du tableau $1
|
||||||
eval "echo \${#$1[*]}"
|
eval "echo \${#$1[*]}"
|
||||||
|
@ -1523,7 +1434,7 @@ function get_archive_basename() {
|
||||||
function get_archive_appname() {
|
function get_archive_appname() {
|
||||||
# Obtenir le nom probable de l'application ou du framework contenu dans
|
# Obtenir le nom probable de l'application ou du framework contenu dans
|
||||||
# l'archive $1, e.g:
|
# l'archive $1, e.g:
|
||||||
# get_archive_versionsuffix app-0.1.tgz
|
# get_archive_appname app-0.1.tgz
|
||||||
# --> app
|
# --> app
|
||||||
local appname="$(basename -- "$1")"
|
local appname="$(basename -- "$1")"
|
||||||
# supprimer l'extension
|
# supprimer l'extension
|
||||||
|
@ -1570,7 +1481,7 @@ function get_archive_versionsuffix() {
|
||||||
function get_archive_version() {
|
function get_archive_version() {
|
||||||
# Obtenir la valeur probable de la version de l'application ou du framework
|
# Obtenir la valeur probable de la version de l'application ou du framework
|
||||||
# contenu dans l'archive $1, e.g:
|
# contenu dans l'archive $1, e.g:
|
||||||
# get_archive_versionsuffix app-0.1.tgz
|
# get_archive_version app-0.1.tgz
|
||||||
# --> 0.1
|
# --> 0.1
|
||||||
local basename="$(get_archive_basename "$1")"
|
local basename="$(get_archive_basename "$1")"
|
||||||
echo "$basename" | awk '{
|
echo "$basename" | awk '{
|
||||||
|
|
|
@ -29,6 +29,24 @@ function yesval() {
|
||||||
is_yes "$1" && echo 1
|
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() {
|
function setb() {
|
||||||
# Lancer la commande $2..@ en supprimant la sortie standard. Si la commande
|
# 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
|
# 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 quote_form() { _qform "$@"; }
|
||||||
function quoted_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
|
## Compatibilité avec bash >=2.x
|
||||||
|
|
||||||
if [ -n "$BASH_VERSINFO" -a "${BASH_VERSINFO[0]}" -lt 4 ]; then
|
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"
|
[ -z "$USER" -a -n "$LOGNAME" ] && export USER="$LOGNAME"
|
||||||
|
|
||||||
# Le fichier nutoolsrc doit être chargé systématiquement
|
# 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/debian_chroot ] && UTOOLS_CHROOT=1
|
||||||
[ -f /etc/nutoolsrc ] && . /etc/nutoolsrc
|
[ -f /etc/nutoolsrc ] && . /etc/nutoolsrc
|
||||||
[ -f ~/.nutoolsrc ] && . ~/.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