| #!/bin/bash |
| |
| # This script does the following: |
| # 0. If indicated by environent variables, look for DBMS-supplied Python |
| # installation. E.g., Greenplum supplies its own Python, and its currently |
| # the first choice to use because it guarantees that python, pygresql |
| # (currently needed to connect to a GP database), and libpg all have the same |
| # architecture. |
| # 1. Of step 0 failed, find python interpreter by |
| # - first looking for "python${VERSION}" in $PATH where |
| # ${VERSION} in {2.7, 2.6} |
| # - Only if that fails, look for "python" in $PATH |
| # 2. Pass all arguments to ../madpack/madpack.py |
| |
| PYTHON_PREFIX="python" |
| PYTHON_VERSIONS="2.7 2.6" |
| |
| # create absolute path to madpack.py |
| pushd `dirname $0` > /dev/null |
| MADPACK_PATH="$(pwd -P)/../madpack/madpack.py" |
| popd > /dev/null |
| |
| # MADPACK_PATH="$(dirname 0)/../madpack/madpack.py" |
| |
| # Initialization |
| DID_NOT_FIND_INTERPRETER=1 |
| |
| # Platform-specific overrides |
| if test "$GPHOME" && test "$PYTHONHOME" && \ |
| test "${PYTHONHOME:0:${#GPHOME}}" = "$GPHOME"; then |
| |
| DID_NOT_FIND_INTERPRETER=0 |
| PYTHON_EXE_NAME="${PYTHONHOME}/bin/python" |
| fi |
| |
| errorNoPythonFound() { |
| echo "No Python interpreter found. Please install Python 2.6 or higher to" \ |
| "run madpack." |
| exit 1 |
| } |
| |
| setAndTestPythonVesion() { |
| PYTHON_EXE_NAME="${PYTHON_PREFIX}$1" |
| command -v "${PYTHON_EXE_NAME}" > /dev/null |
| DID_NOT_FIND_INTERPRETER=$? |
| } |
| |
| |
| # function main() |
| if test $DID_NOT_FIND_INTERPRETER -ne 0; then |
| for VERSION in $PYTHON_VERSIONS; do |
| setAndTestPythonVesion "${VERSION}" |
| if test $DID_NOT_FIND_INTERPRETER -eq 0; then |
| break |
| fi |
| done |
| fi |
| |
| if test $DID_NOT_FIND_INTERPRETER -ne 0; then |
| setAndTestPythonVesion "" |
| fi |
| |
| if test $DID_NOT_FIND_INTERPRETER -ne 0; then |
| errorNoPythonFound |
| fi |
| |
| "$PYTHON_EXE_NAME" "${MADPACK_PATH}" "$@" |