nutools/legacy/sysinc/private/init

66 lines
2.1 KiB
Bash

# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
# requiere l'utilisation de bash pour lancer ce script
use_bash=1
if [ -n "$BASH" ]; then
if [ `basename "$BASH"` != sh ]; then
use_bash=
fi
fi
if [ -n "$use_bash" ]; then
default_bash="`which bash 2>/dev/null`"
for bash in "$default_bash" /bin/bash /usr/bin/bash /usr/local/bin/bash; do
if [ -x "$bash" ]; then
exec "$bash" "$0" "$@"
fi
done
echo "error: Ce script necessite bash"
exit 1
fi
unset use_bash
# Mettre en place l'environnement pour l'utilisation des fonctions de
# utools.
# répertoire de base des outils utools.
UTOOLS_BASEDIR="$(cd "$(dirname "$0")"; pwd)"
# lance-t-on ce script en mode développement?
testing="@@dest@@"
if [ "$testing" == "@@"dest"@@" ]; then
export PYTHONPATH="$UTOOLS_BASEDIR/pyutools:$UTOOLS_BASEDIR/pyutools_old:${PYTHONPATH:+:$PYTHONPATH}"
export UPDATEINCPATH="$UTOOLS_BASEDIR${UPDATEINCPATH:+:$UPDATEINCPATH}"
fi
# fonction die(). peut être remplacée par la version de sysinc/base si ce
# fichier est inclus.
function die() { test -n "$*" && echo "error: $@"; exit 1; }
# définir la fonction source_functions() pour charger les fonctions de utools à
# partir du bon répertoire
UTOOLS_FUNCTIONS="base system_caps functions"
function utools_source_functions() {
# sourcer un fichier de utools. le mot spécial ALL en première position
# signifie tous les fichiers de $UTOOLS_FUNCTIONS, pris dans sysinc/
if [ "$1" = "ALL" ]; then
local file
for file in $UTOOLS_FUNCTIONS; do
source "$UTOOLS_BASEDIR/sysinc/$file" || die
done
shift
fi
local script="$(cd "$(dirname "$0")"; pwd)/$(basename "$0")"
while [ -n "$1" ]; do
if [ -f "$UTOOLS_BASEDIR/lib/${1}_functions.sh" ]; then
source "$UTOOLS_BASEDIR/lib/${1}_functions.sh" || die
else
if [ "$script" == "$UTOOLS_BASEDIR/$1" ]; then
die "Inclusion recursive de $1"
else
source "$UTOOLS_BASEDIR/$1" || die
fi
fi
shift
done
}