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
 | 
						|
}
 |