__ULIB_FORCE_RELOAD ne doit pas être transitif

This commit is contained in:
Jephte CLAIN 2014-12-24 10:29:35 +04:00
parent eeab145265
commit f59a4439fe
2 changed files with 10 additions and 4 deletions

View File

@ -1 +1 @@
007013000 007013001

View File

@ -67,7 +67,8 @@ function uprovide() {
} }
# Si cette variable est non vide, urequire recharge toujours le module, même # Si cette variable est non vide, urequire recharge toujours le module, même
# s'il a déjà été chargé # s'il a déjà été chargé. Cette valeur n'est pas transitive: il faut toujours
# recharger explicitement tous les modules désirés
__ULIB_FORCE_RELOAD= __ULIB_FORCE_RELOAD=
function urequire() { function urequire() {
@ -77,12 +78,17 @@ function urequire() {
# Si un module n'est pas trouvé, quitter le script avec die() # Si un module n'est pas trouvé, quitter le script avec die()
local __u_module __u_ulibdir __u_found local __u_module __u_ulibdir __u_found
[ -n "$*" ] || set DEFAULTS [ -n "$*" ] || set DEFAULTS
# garder une copie de la valeur originale et casser la transitivité
local __ulib_force_reload="$__ULIB_FORCE_RELOAD"
local __ULIB_FORCE_RELOAD
for __u_module in "$@"; do for __u_module in "$@"; do
__u_found= __u_found=
for __u_ulibdir in "${ULIBDIRS[@]}"; do for __u_ulibdir in "${ULIBDIRS[@]}"; do
if [ -f "$__u_ulibdir/$__u_module" ]; then if [ -f "$__u_ulibdir/$__u_module" ]; then
__u_found=1 __u_found=1
if [ -n "$__ULIB_FORCE_RELOAD" ] || ! uprovided "$__u_module"; then if [ -n "$__ulib_force_reload" ] || ! uprovided "$__u_module"; then
uprovide "$__u_module" uprovide "$__u_module"
source "$__u_ulibdir/$__u_module" || die source "$__u_ulibdir/$__u_module" || die
fi fi
@ -92,7 +98,7 @@ function urequire() {
if [ -z "$__u_found" -a "$__u_module" == DEFAULTS ]; then if [ -z "$__u_found" -a "$__u_module" == DEFAULTS ]; then
__u_found=1 __u_found=1
for __u_module in base pretty sysinfos compat; do for __u_module in base pretty sysinfos compat; do
if [ -n "$__ULIB_FORCE_RELOAD" ] || ! uprovided "$__u_module"; then if [ -n "$__ulib_force_reload" ] || ! uprovided "$__u_module"; then
uprovide "$__u_module" uprovide "$__u_module"
source "$__u_ulibdir/$__u_module" || die source "$__u_ulibdir/$__u_module" || die
fi fi