#!/bin/bash
# Emulate the jdk java command using gcj
# (c) 2002-2003 Bernhard Rosenkraenzer <bero@arklinux.org>

GCC=`gcj --version |head -n1 |awk '{ print $3; }'`

clp="/usr/share/java/libgcj-$GCC.jar"
if [ ! -f "$clp" ]; then
	GCC="${GCC%.*}"
	clp="/usr/share/java/libgcj-$GCC.jar"
fi

if [ -n "$CLASSPATH" ]; then
	clp="$CLASSPATH:$clp"
fi

[ -n "${GCC##4.[3-9]*}" -a -n "${GCC##5*}" ] ||
	exec gij -classpath "$clp" "$@"

unset HAVE_APPNAME || :
while [ "$#" != 0 ]; do
        if [ "$1" = "-version" ]; then
                echo 'java version "1.3.1"' 1>&2
		echo 'jdkgcj 0.3.3 (http://www.arklinux.org/projects/jdkgcj)'
                gcj --version 1>&2
                exit 0
        elif [ "$1" = "-showversion" ]; then
                echo 'java version "1.3.1"' 1>&2
		echo 'jdkgcj 0.3.3 (http://www.arklinux.org/projects/jdkgcj)'
                gcj --version 1>&2
        elif [ "$1" = "-classpath" -o "$1" = "-cp" ]; then
                shift
                clp="`echo $1 | sed \"s~.*/lib/rt.jar~/usr/share/java/libgcj-$GCC.jar~\"`"
	elif [ "`echo $1 |cut -b1-2`" = "-D" ]; then
		if [ "`echo $1 |cut -b1-20`" = "-Djava.library.path=" ]; then
			export LD_LIBRARY_PATH=`echo $1 |cut -b21-`:$LD_LIBRARY_PATH
		fi
		params="$params \"`echo $1 |sed -e 's,",\\\\",g'`\""
        elif [ -z "$HAVE_APPNAME" -a "`echo $1 |cut -b1`" = "-" ]; then
                # Yuck. Unknown parameter. Let's pretend nothing happened.
                echo "Warning: $1 not understood. Ignoring." >&2
        else
		if [ -n "$HAVE_APPNAME" ]; then
			params="$params \"`echo $1 |sed -e 's,",\\\\",g'`\""
		else
			params="$params \"`echo $1 |sed -e 's,",\\\\",g;s,/,.,g'`\""
			HAVE_APPNAME=yes
		fi
        fi
        shift
done
if ! echo $clp |grep -q /usr/share/java/libgcj-$GCC.jar; then
	# We NEED this
	clp="$clp:/usr/share/java/libgcj-$GCC.jar"
fi
export CLASSPATH="$clp"
COMMAND=`mktemp /tmp/javaXXXXXX`
echo "rm $COMMAND" >$COMMAND
echo "exec gij $params" >>$COMMAND
chmod +x $COMMAND
exec $COMMAND
