##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 ## Support des fonctions uprovided(), uprovide() et urequire() de ulib dans le ## cas où cette librairie n'est pas chargée ##@cooked nocomments # Ce fichier ne doit pas être sourcé, mais inclus avec uinc if [ -z "$ULIBDIR" -o "$ULIBDIR" != "$ULIBINIT" ]; then ULIBPROVIDED=() function uprovided() { local module for module in "${ULIBPROVIDED[@]}"; do [ "$module" == "$1" ] && return 0 done return 1 } function uprovide() { uprovided "$1" && return 1 ULIBPROVIDED=("${ULIBPROVIDED[@]}" "$1") } function urequire() { # si ulib n'est pas disponible pour charger le module, on compte sur # l'utilisateur pour charger manuellement les librairies nécessaires. # retourner 1 si un module n'est pas disponible local module r=0 for module in "$@"; do uprovided "$module" && continue echo "error: $module: this module is required but cannot be automatically loaded" 1>&2 r=1 done return $r } uprovide base.ulib fi