python.sh 1.22 KB
Newer Older
Daniel STAN's avatar
Daniel STAN committed
1
#!/bin/bash
2 3 4 5
# À lancer par bash dans un shabang de la forme :
#!/bin/bash /usr/scripts/python.sh
#Ceci permet alors de lancer python avec un PYTHONPATH custom (/usr/scripts)
#pour éviter de l'importer dans chaque script
6 7

# CPATH: dossier de base de tous les scripts
Daniel STAN's avatar
Daniel STAN committed
8
export CPATH=/usr/scripts
9 10

# Quel binaire lancer ?
Daniel STAN's avatar
Daniel STAN committed
11 12 13 14 15
BIN=python
if [ "$1" = ipython ]; then
  BIN=ipython
  shift 1
fi
16 17

# Et quel script ?
Daniel STAN's avatar
Daniel STAN committed
18 19 20 21
SCRIPT=$1
if [ -z "$SCRIPT" ]; then
  SCRIPT=$0
fi
22 23 24

# Si nous ne trouvons pas dans /usr/scripts (le vrai), alors on part à la
# recherche de la racine du dépôt cloné. (Màj $CPATH)
Daniel STAN's avatar
Daniel STAN committed
25 26
readlink -e $SCRIPT | grep "^/usr/scripts/" -q || {
    f=`readlink -e $SCRIPT`
27 28 29 30 31 32 33 34
    p=`dirname "$f"`
    while [ "$p" != "/" ]; do
        if [ -f "$p/CRANS_SCRIPTS_ROOT" ]; then
            CPATH=$p
            break
        fi
        p=`dirname "$p"`
    done;
Daniel STAN's avatar
Daniel STAN committed
35
    export CPATH
36 37
    # Placer dans testing.sh les variables d'env supplémentaires pour
    # debugguer des scripts
38
    test -f $CPATH/testing.sh && . $CPATH/testing.sh
39
}
40 41

# Some additionnal paths, for 3rd party libs
42 43
for i in $CPATH/lib/python2.7/site-packages/*.egg; do
    CPATH=$CPATH:$i
44
done
45
CPATH=$CPATH:/usr/scripts/lib/python2.7/site-packages/
46 47

# Fin:
Daniel STAN's avatar
Daniel STAN committed
48
/usr/bin/env PYTHONPATH=$CPATH $BIN "$@"