66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			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
 | |
| }
 |