#!/bin/sh
set -e

# Specify how we will call the Java interpreter.
if [ -z "$JAVA" ]; then
	JAVA=/usr/bin/java
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

# Pass the libreadline-java JNI directory since some popular non-free
# JVMs still don't support /usr/lib/jni.
JNIFLAG="-Djava.library.path=/usr/lib/jni"

# Run it!
if [ -z "$CALLED_FROM_JYTHONC" ]; then
	# echo "Java runtime: $JAVA"
	# echo "Java options: $JAVA_OPTIONS"
	# echo "Classpath: $CLASSPATH"
	# echo
	"$JAVA" $JAVA_OPTIONS $JNIFLAG \
		"-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 options: $JAVA_OPTIONS"
	# echo "Java compiler: $JAVAC"
	# echo "Runtime classpath: $CLASSPATH"
	# echo
	"$JAVA" $JAVA_OPTIONS $JNIFLAG \
		"-Dpython.home=$JYTHON_HOME" "-Dpython.path=$JYTHON_PATH" \
		"-Dpython.cachedir=$CACHEDIR" \
		"-Dpython.jythonc.compiler=$JAVAC" \
		org.python.util.jython "$@"
fi
