#! /bin/bash #******************************************************************************* # ALMA - Atacama Large Millimiter Array # (c) National Research Council of Canada, 2009 # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # "@(#) $Id: python,v 1.7 2010/08/11 03:56:12 agrimstrup Exp $" # # who when what # -------- -------- ---------------------------------------------- # agrimstrup 2009-09-28 created # # We have to process the set of Python command line arguments # in order to properly mimic the behaviour of the tools we # are wrapping function get_args { local OPTIMIZE= local VERBOSITY= local PYTHONARGS="" local CMDSTR= while getopts ":c:dEhim:OQ:StuvVW:x-:" flag do case $flag in c) PYTHONARGS="$PYTHONARGS-c " CMDSTR=$OPTARG break ;; m) PYTHONARGS="$PYTHONARGS-$flag $OPTARG " break ;; V|h) PYTHONARGS="$PYTHONARGS-$flag " break ;; Q|W) PYTHONARGS="$PYTHONARGS-$flag $OPTARG " ;; O) if [[ -z $OPTIMIZE ]] then OPTIMIZE="-O" else OPTIMIZE="-OO" fi ;; v) if [[ -z $VERBOSITY ]] then VERBOSITY="-v" else VERBOSITY="${VERBOSITY}v" fi ;; d|E|i|S|t|u|x) PYTHONARGS="$PYTHONARGS-$flag " ;; -) PYTHONARGS="--$OPTARG" ;; :) PYTHONARGS="-h" break ;; esac done if [[ ! -z $OPTIMIZE ]] then PYTHONARGS="$OPTIMIZE $PYTHONARGS" fi if [[ ! -z $VERBOSITY ]] then PYTHONARGS="$VERBOSITY $PYTHONARGS" fi if [ ! -z "$CMDSTR" ] then PYINTRARGS=$PYTHONARGS PYCMDSTR=$CMDSTR else PYINTRARGS=$PYTHONARGS PYCMDSTR= fi } function select_intr { PYTHONSHELL="exec $PYTHON_ROOT/bin/python" } function start_intr { # Now that the environment is set, the interpreter can # be started. if [ "X" = "$1X" ] then # No script provided so the interpreter is launched if [ ! -z "$PYCMDSTR" ] then $PYTHONSHELL $PYINTRARGS "$PYCMDSTR" else $PYTHONSHELL $PYINTRARGS fi else # A script is to be run in the interpreter if [ -e $1 ] then # Run the file from the current directory $PYTHONSHELL $PYINTRARGS "$@" else # Use the interpreter to override the Python # interpreter line given in an executable script SCRIPT=`which $1 2>/dev/null` if [ "X" = "X$SCRIPT" ] then echo "$1 not found!" else shift $PYTHONSHELL $PYINTRARGS $SCRIPT "$@" fi fi fi } if [ -z "$TEST_MODE" ] then # Extract the interpreter arguments from the command line get_args "$@" shift $(($OPTIND-1)) # Pick the interpreter to be run select_intr start_intr "$@" fi # # ___oOo___