diff --git a/lib/ulib/ulib b/lib/ulib/ulib index f017cd8..74069a7 100644 --- a/lib/ulib/ulib +++ b/lib/ulib/ulib @@ -66,6 +66,10 @@ function uprovide() { ULIBPROVIDED=("${ULIBPROVIDED[@]}" "$1") } +# Si cette variable est non vide, urequire recharge toujours le module, même +# s'il a déjà été chargé +__ULIB_FORCE_RELOAD= + function urequire() { # Sourcer un module recherché dans ULIBDIRS # Le module DEFAULTS est traité de façon particulière: si le fichier associé @@ -78,7 +82,7 @@ function urequire() { for __u_ulibdir in "${ULIBDIRS[@]}"; do if [ -f "$__u_ulibdir/$__u_module" ]; then __u_found=1 - if ! uprovided "$__u_module"; then + if [ -n "$__ULIB_FORCE_RELOAD" ] || ! uprovided "$__u_module"; then uprovide "$__u_module" source "$__u_ulibdir/$__u_module" || die fi @@ -88,7 +92,7 @@ function urequire() { if [ -z "$__u_found" -a "$__u_module" == DEFAULTS ]; then __u_found=1 for __u_module in base pretty sysinfos compat; do - if ! uprovided "$__u_module"; then + if [ -n "$__ULIB_FORCE_RELOAD" ] || ! uprovided "$__u_module"; then uprovide "$__u_module" source "$__u_ulibdir/$__u_module" || die fi