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