#!/bin/bash # -*- mode: sh; tab-width: 8; coding: utf-8-unix -*- prog=$( basename $0 .bash ) PREFIX=/usr/local ROLE=base [ "$#" -eq 0 ] && echo USAGE: $0 2.7 ... 3.9 3.10 3.11 && exit 1 . /usr/local/bin/usr_local_base.bash || exit 2 [ -f $PREFIX/etc/testforge/testforge.bash ] \ && . /usr/local/etc/testforge/testforge.bash PYTHON_MINOR="$1" PYMAJ="${PYTHON_MINOR:0:1}" if [ -z "$LIB" -a -f /usr/lib/python$PYTHON_MINOR/site.py ] ; then LIB=lib elif [ -z "$LIB" -a -f /usr/lib64/python$PYTHON_MINOR/site.py ] ; then LIB=lib64 fi [ -d /usr/local/lib/python$PYTHON_MINOR ] && \ [ ! -e /usr/local/lib64/python$PYTHON_MINOR ] && \ ln -s /usr/local/lib/python$PYTHON_MINOR /usr/local/lib64/python$PYTHON_MINOR if [ "" = "$BASE_PYTHON2_MINOR" ] ; then not_PYTHON_MINOR="" elif [ $PYTHON_MINOR = "$BASE_PYTHON2_MINOR" ] ; then not_PYTHON_MINOR="$BASE_PYTHON3_MINOR" elif [ $PYTHON_MINOR = "$BASE_PYTHON3_MINOR" ] ; then not_PYTHON_MINOR="$BASE_PYTHON2_MINOR" else ERROR "$PYTHON_MINOR not in $BASE_PYTHON2_MINOR $BASE_PYTHON3_MINOR" exit 1 fi INFO $prog PYMAJ=$PYMAJ PYTHON_MINOR=$PYTHON_MINOR not_PYTHON_MINOR=$not_PYTHON_MINOR PYTHONPATH=$PYTHONPATH export PYTHONPATH="" if [ "$PYMAJ" = '2' ] ; then imp='import sys; print sys.path' elif [ "$PYMAJ" = '3' ] ; then imp='import sys; print(repr(sys.path))' fi [ -x $PREFIX/bin/python$PYMAJ.sh ] || { echo >&2 ERROR: $prog 2 -x $PREFIX/bin/python$PYMAJ.sh "$PYTHON_MINOR" && exit 2 ; } if [ -f /etc/python-exec/python2.conf ] ; then grep -F "$BASE_PYTHON2_MINOR" /etc/python-exec/python2.conf || { echo >&2 ERROR: $prog 3 "$BASE_PYTHON2_MINOR" /etc/python-exec/python2.conf } fi if [ -f /etc/python-exec/python3.conf ] ; then grep -F "$BASE_PYTHON3_MINOR" /etc/python-exec/python3.conf || { echo >&2 ERROR: $prog 4 "$BASE_PYTHON3_MINOR" /etc/python-exec/python3.conf } fi # echo -n DEBUG: $prog 2 python$PYTHON_MINOR -S -s python$PYMAJ -S -s -c "$imp" \ || { echo >&2 ERROR: $prog 22 $PYTHON_MAJ -S -s"$PYTHON_MINOR" && exit 22 ; } # echo -n DEBUG: $prog 4 python$PYTHON_MINOR -s python$PYMAJ -s -c "$imp" \ || { echo >&2 ERROR: $prog 4 python$PYTHON_MINOR -s "$PYTHON_MINOR" && exit 4 ; } # echo -n DEBUG: $0 6 $PREFIX/bin/python$PYMAJ.sh -S -s $PREFIX/bin/python$PYMAJ.sh -S -s -c "$imp" \ || { echo >&2 ERROR: $prog 6 python$PYMAJ.sh -S -s "$PYTHON_MINOR" && exit 6 ; } echo -n DEBUG: $0 8 $PREFIX/bin/python$PYMAJ.sh -s $PREFIX/bin/python$PYMAJ.sh -s -c "$imp" \ || { echo >&2 ERROR: $prog 8 python$PYMAJ.sh -s "$PYTHON_MINOR" && exit 8 ; } # INFO $prog 10 $PREFIX/bin/python$PYMAJ.sh sitecustomize.py "$PYTHON_MINOR" a=$( $PREFIX/bin/python$PYMAJ.sh $PREFIX/$LIB/python$PYTHON_MINOR/site-packages/sitecustomize.py ) || \ { echo >&2 ERROR: $prog "error 10 $PREFIX/bin/python$PYMAJ.sh $PREFIX/$LIB/python$PYTHON_MINOR/site-packages/sitecustomize.py" && exit 10 ; } #[ -x "$a" ] || \ # { echo >&2 ERROR: $prog 11 "broken $PREFIX/bin/python$PYMAJ.sh /usr/local/bin/python2.sh - $a" && exit 11 ; } #echo >&2 INFO: $prog 11 "$a" # INFO $prog 12 python$PYTHON_MINOR sitecustomize.py "$PYTHON_MINOR" python$PYMAJ $PREFIX/$LIB/python$PYTHON_MINOR/site-packages/sitecustomize.py || \ { ERROR 12 $prog python$PYMAJ sitecustomize.py "$PYTHON_MINOR" && exit 12 ; } exit 0 # [ $( python2.sh {{BASE_USR_LOCAL}}/$LIB/python{{BASE_PYTHON2_MINOR}}/site-packages/sitecustomize.py ) = {{BASE_USR_LOCAL}}/bin/python2.sh ] || exit 2 # [ $( python3.sh {{BASE_USR_LOCAL}}/$LIB/python{{BASE_PYTHON3_MINOR}}/site-packages/sitecustomize.py ) = {{BASE_USR_LOCAL}}/bin/python3.sh ] || exit 3 # [ $( python2.bash {{BASE_USR_LOCAL}}/$LIB/python{{BASE_PYTHON2_MINOR}}/site-packages/sitecustomize.py ) = $PREFIX/bin/python2.bash ] || exit 22 # [ $( python3.sh {{BASE_USR_LOCAL}}/$LIB/python{{BASE_PYTHON3_MINOR}}/site-packages/sitecustomize.py ) = $PREFIX/bin/python3.sh ] || exit 33