pour simplifier le débuggage, set -x est désactivé pour les fonction urequire(), parse_args() et awkdef()

This commit is contained in:
Jephté Clain 2016-12-30 18:22:42 +04:00
parent ed1633a30b
commit 683d5df062
8 changed files with 6843 additions and 4120 deletions

2
.udir
View File

@ -19,7 +19,7 @@ openvz_service=
# Faut-il installer le service kill-ssh-user-sessions? # Faut-il installer le service kill-ssh-user-sessions?
ksus_service= ksus_service=
configure_variables=(dest uninst_utools rm_utools kvm_service openvz_service) configure_variables=(dest uninst_utools rm_utools kvm_service openvz_service ksus_service)
configure_dest_for=(bashrc profile lib/uinst/conf lib/uinst/rootconf lib/profile.d/nutools.shared lib/bashrc.d/bash_completion.shared lib/init.d/kvm-stop-all legacy/sysinc/utools legacy/sysinc/system_caps legacy/sysinc/private/init) configure_dest_for=(bashrc profile lib/uinst/conf lib/uinst/rootconf lib/profile.d/nutools.shared lib/bashrc.d/bash_completion.shared lib/init.d/kvm-stop-all legacy/sysinc/utools legacy/sysinc/system_caps legacy/sysinc/private/init)
config_scripts=(lib/uinst/conf lib/uinst/system_caps.legacy) config_scripts=(lib/uinst/conf lib/uinst/system_caps.legacy)
install_profiles=true install_profiles=true

View File

@ -2464,6 +2464,7 @@ function awkdef() {
# pour un tableau values qui contiendra deux valeurs: value1 et value2 # pour un tableau values qui contiendra deux valeurs: value1 et value2
# Avec l'option -f, des fonctions supplémentaires sont définies. Elles sont # Avec l'option -f, des fonctions supplémentaires sont définies. Elles sont
# décrites dans le module awk. # décrites dans le module awk.
[ -z "$__ULIB_NO_DISABLE_SET_X" ] && [[ $- == *x* ]] && { set +x; local __ULIB_AWKDEF_SET_X=1; } # désactiver set -x pour cette fonction
if [ "${1:0:3}" == "-f" ]; then if [ "${1:0:3}" == "-f" ]; then
shift shift
@ -2541,6 +2542,8 @@ function awkdef() {
rawecho "$__ad_arg" rawecho "$__ad_arg"
done done
fi fi
[ -n "$__ULIB_AWKDEF_SET_X" ] && set -x; return 0
} }
function lawkrun() { function lawkrun() {
# wrapper pour lancer awk avec un script préparé par awkdef. Les définitions et # wrapper pour lancer awk avec un script préparé par awkdef. Les définitions et

View File

@ -288,6 +288,8 @@ function parse_opts() {
# flags_ contient la liste des flags pour les options: '' pour une option # flags_ contient la liste des flags pour les options: '' pour une option
# simple, ':' pour option avec argument obligatoire, '::' pour option avec # simple, ':' pour option avec argument obligatoire, '::' pour option avec
# argument facultatif # argument facultatif
[ -z "$__ULIB_NO_DISABLE_SET_X" ] && [[ $- == *x* ]] && { set +x; local __ULIB_PARSE_OPTS_SET_X=1; } # désactiver set -x pour cette fonction
local -a options_ names_ flags_ destargs_ local -a options_ names_ flags_ destargs_
local opts_ longopts_ local opts_ longopts_
__po_parse_optdescs "$@" || shift $? __po_parse_optdescs "$@" || shift $?
@ -297,8 +299,11 @@ function parse_opts() {
__po_process_options "$@" __po_process_options "$@"
else else
[ -n "$destargs_" ] && setv "$destargs_" "$args_" [ -n "$destargs_" ] && setv "$destargs_" "$args_"
[ -n "$__ULIB_SET_X" ] && set -x
return 1 return 1
fi fi
[ -n "$__ULIB_PARSE_OPTS_SET_X" ] && set -x; return 0
} }
function parse_args_check() { function parse_args_check() {
@ -308,9 +313,15 @@ function parse_args_check() {
# Exemple d'utilisation: # Exemple d'utilisation:
# args=(...) # args=(...)
# parse_args_check "$@" || return; set -- "${args[@]}" # parse_args_check "$@" || return; set -- "${args[@]}"
parse_opts "${PRETTYOPTS[@]}" "${args[@]}" @ args -- "$@" && return 0 [ -z "$__ULIB_NO_DISABLE_SET_X" ] && [[ $- == *x* ]] && { set +x; local __ULIB_PARSE_ARGS_SET_X=1; } # désactiver set -x pour cette fonction
if parse_opts "${PRETTYOPTS[@]}" "${args[@]}" @ args -- "$@"; then
[ -n "$__ULIB_PARSE_ARGS_SET_X" ] && set -x
return 0
else
eerror "$args" eerror "$args"
[ -n "$__ULIB_PARSE_ARGS_SET_X" ] && set -x
return 1 return 1
fi
} }
function parse_args() { function parse_args() {
# Simplifier l'utilisation de parse_opts(). En entrée, le tableau args doit être # Simplifier l'utilisation de parse_opts(). En entrée, le tableau args doit être
@ -320,7 +331,9 @@ function parse_args() {
# Exemple d'utilisation: # Exemple d'utilisation:
# args=(...) # args=(...)
# parse_args_check "$@"; set -- "${args[@]}" # parse_args_check "$@"; set -- "${args[@]}"
[ -z "$__ULIB_NO_DISABLE_SET_X" ] && [[ $- == *x* ]] && { set +x; local __ULIB_PARSE_ARGS_SET_X=1; } # désactiver set -x pour cette fonction
parse_opts "${PRETTYOPTS[@]}" "${args[@]}" @ args -- "$@" || die "$args" parse_opts "${PRETTYOPTS[@]}" "${args[@]}" @ args -- "$@" || die "$args"
[ -n "$__ULIB_PARSE_ARGS_SET_X" ] && set -x; return 0
} }
HELP_DESC= HELP_DESC=

View File

@ -6,6 +6,10 @@
uprovide base.string uprovide base.string
urequire base.core urequire base.core
# IMPORTANT: aucune des fonctions suivantes ne met en échappement les valeur des
# patterns. Ainsi, si un pattern contient des caractères interdits comme \ ou $,
# il faut d'abord le traiter avec _qval()
function straddp() { function straddp() {
# ajouter le préfixe $1 à $2* # ajouter le préfixe $1 à $2*
local p="$1"; shift local p="$1"; shift

File diff suppressed because it is too large Load Diff

View File

@ -76,6 +76,8 @@ function urequire() {
# Le module DEFAULTS est traité de façon particulière: si le fichier associé # Le module DEFAULTS est traité de façon particulière: si le fichier associé
# n'est pas trouvé, charger base, pretty, sysinfos et compat à la place # n'est pas trouvé, charger base, pretty, sysinfos et compat à la place
# Si un module n'est pas trouvé, quitter le script avec die() # Si un module n'est pas trouvé, quitter le script avec die()
[ -z "$__ULIB_NO_DISABLE_SET_X" ] && [[ $- == *x* ]] && { set +x; local __ULIB_UREQUIRE_SET_X=1; }; if [ -n "$__ULIB_UREQUIRE_SET_X" ]; then [ -n "$__ULIB_UREQUIRE_SET_X_RL1" ] || local __ULIB_UREQUIRE_SET_X_RL1; local __ULIB_UREQUIRE_SET_X_RL2=$RANDOM; [ -n "$__ULIB_UREQUIRE_SET_X_RL1" ] || __ULIB_UREQUIRE_SET_X_RL1=$__ULIB_UREQUIRE_SET_X_RL2; fi # désactiver set -x de manière réentrante
local __u_module __u_ulibdir __u_found local __u_module __u_ulibdir __u_found
[ -n "$*" ] || set DEFAULTS [ -n "$*" ] || set DEFAULTS
@ -106,6 +108,8 @@ function urequire() {
fi fi
[ -n "$__u_found" ] || die "Unable to find $__u_module in ${ULIBDIR[*]}" [ -n "$__u_found" ] || die "Unable to find $__u_module in ${ULIBDIR[*]}"
done done
[ -n "$__ULIB_UREQUIRE_SET_X" -a "$__ULIB_UREQUIRE_SET_X_RL1" == "$__ULIB_UREQUIRE_SET_X_RL2" ] && set -x
return 0 return 0
} }

View File

@ -62,6 +62,8 @@ function uprovide() {
__ULIB_FORCE_RELOAD= __ULIB_FORCE_RELOAD=
function urequire() { function urequire() {
[ -z "$__ULIB_NO_DISABLE_SET_X" ] && [[ $- == *x* ]] && { set +x; local __ULIB_UREQUIRE_SET_X=1; }; if [ -n "$__ULIB_UREQUIRE_SET_X" ]; then [ -n "$__ULIB_UREQUIRE_SET_X_RL1" ] || local __ULIB_UREQUIRE_SET_X_RL1; local __ULIB_UREQUIRE_SET_X_RL2=$RANDOM; [ -n "$__ULIB_UREQUIRE_SET_X_RL1" ] || __ULIB_UREQUIRE_SET_X_RL1=$__ULIB_UREQUIRE_SET_X_RL2; fi # désactiver set -x de manière réentrante
local __u_module __u_ulibdir __u_found local __u_module __u_ulibdir __u_found
[ -n "$*" ] || set DEFAULTS [ -n "$*" ] || set DEFAULTS
@ -91,6 +93,8 @@ function urequire() {
fi fi
[ -n "$__u_found" ] || die "Unable to find $__u_module in ${ULIBDIR[*]}" [ -n "$__u_found" ] || die "Unable to find $__u_module in ${ULIBDIR[*]}"
done done
[ -n "$__ULIB_UREQUIRE_SET_X" -a "$__ULIB_UREQUIRE_SET_X_RL1" == "$__ULIB_UREQUIRE_SET_X_RL2" ] && set -x
return 0 return 0
} }

9750
ucrontab

File diff suppressed because it is too large Load Diff