33 lines
1.2 KiB
Plaintext
33 lines
1.2 KiB
Plaintext
|
##@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
|