#!/bin/sh
set -e

# Specify how we will call the Java interpreter.
if [ -z "$JAVA" ]; then
	JAVA=/usr/bin/java
fi

# Get basic information about the Java runtime.
rtinfo=`/usr/share/jython/whichjava "$JAVA" --eval`
if ! eval "$rtinfo"; then
	exit 1
fi

# Note that jython won't work with ORP.
if [ "x$JVM" = xorp ]; then
	echo "The ORP (Open Runtime Platform) Java runtime is missing some"
	echo "features that Jython requires.  You will need to use another"
	echo "Java runtime."
	echo
	echo "Ensure that /usr/bin/java calls a different runtime or set"
	echo "the environment variable JAVA to the alternate runtime you"
	echo "wish to use, such as \"/usr/bin/kaffe\"."
	exit 1
fi

# Determine the full classpath.

# --- add Jython
if [ -z "$CLASSPATH" ]; then
	CLASSPATH=/usr/share/java/jython.jar
else
	CLASSPATH="/usr/share/java/jython.jar:$CLASSPATH"
fi

# --- add the servlet library if it exists
if [ -e /usr/share/java/servlet-2.2.jar ]; then
	CLASSPATH="$CLASSPATH:/usr/share/java/servlet-2.2.jar"
fi

# --- add the readline wrappers if they exist
if [ -e /usr/share/java/libreadline-java.jar ]; then
	CLASSPATH="$CLASSPATH:/usr/share/java/libreadline-java.jar"
fi

export CLASSPATH

# Miscellaneous variables.
JYTHON_HOME=/usr/share/jython

# Determine the python path.
if [ -d /usr/lib/python2.1 ]; then
	CPYTHON_LIB=":/usr/lib/python2.1"
else
	CPYTHON_LIB=
fi
JYTHON_PATH=".:$JYTHON_HOME/Lib$CPYTHON_LIB"

# Set up the cache directory.
CACHEDIR=~/.jython-cache
if [ ! -e $CACHEDIR ]; then
	mkdir $CACHEDIR
elif [ ! -d $CACHEDIR ]; then
	CACHEDIR=`mktemp -u /tmp/jython-cache.XXXXXX`
	mkdir $CACHEDIR
fi

# Run it!
if [ -z "$CALLED_FROM_JYTHONC" ]; then
	# echo "Java runtime: $JAVA"
	# echo "Classpath: $CLASSPATH"
	# echo
	"$JAVA" "-Dpython.home=$JYTHON_HOME" "-Dpython.path=$JYTHON_PATH" \
		"-Dpython.cachedir=$CACHEDIR" org.python.util.jython "$@"
else
	# Add in the extra jythonc flags.
	# echo "Java runtime: $JAVA"
	# echo "Java compiler: $JAVAC"
	# echo "Runtime classpath: $CLASSPATH"
	# echo "Javac classpath: $JAVAC_BOOTSTRAP_CLASSES"
	# echo
	"$JAVA" "-Dpython.home=$JYTHON_HOME" "-Dpython.path=$JYTHON_PATH" \
		"-Dpython.cachedir=$CACHEDIR" \
		"-Dpython.jythonc.compiler=$JAVAC" \
		"-Dpython.jythonc.classpath=$JAVAC_BOOTSTRAP_CLASSES" \
		org.python.util.jython "$@"
fi
