#!/bin/bash

######## CONFIGURATION OPTIONS ########
AUTOUPDATE_SCRIPT=0 # change to 0 if you don't want your changes overwritten on next SCRIPT_VERSION change
JAVA_PROGRAM_DIR="/usr/bin/"	# use full path to java bin dir, ex. "/usr/java/j2sdk1.4.2/bin/"
PROGRAM_DIR="$HOME/.azureus/app"	# use full path to Azureus bin dir
mkdir -p ${PROGRAM_DIR}

#Workaround for SWT problem with wayland
export GDK_BACKEND=x11

#export MOZILLA_FIVE_HOME="/path/to/gre"	# Full path to GRE/Mozilla. When commenting out this line, also comment out the next line
#if [ "$LD_LIBRARY_PATH x" = " x" ]; then export LD_LIBRARY_PATH=$MOZILLA_FIVE_HOME; else export LD_LIBRARY_PATH=$MOZILLA_FIVE_HOME:$LD_LIBRARY_PATH; fi


#######################################

LIBDIR=/usr/lib
export LD_LIBRARY_PATH=$LIBDIR/eclipse/plugins/:$LIBDIR/eclipse/:$LIBDIR CLASSPATH=`build-classpath swt json-simple bcprov apache-commons-cli apache-commons-lang reload4j`:/usr/share/azureus/Azureus2.jar


######## YOU PROBABLY DO NOT WANT TO TOUCH ANYTHING BELOW! ########

SCRIPT_VERSION=6
START_CLASS="org.gudy.azureus2.ui.swt.Main"

MSG_LOADING="Loading Azureus:"
MSG_STARTING="Starting Azureus..."
MSG2="Java exec found in "
MSG_JAVA_TOO_OLD="OOPS, your java version is too old "
MSG_JAVA_BELOW_MIN="You need to upgrade to JRE 1.6 or newer"
MSG5="Suitable java version found "
MSG6="Configuring environment..."
MSG7="OOPS, you don't seem to have a valid JRE "
MSG8="OOPS, unable to locate java exec in "
MSG9=" hierarchy"
MSG_JAVASEARCH="Java exec not found in PATH, starting auto-search..."
MSG11="Java exec found in PATH. Verifying..."
MSG_AZEXIT="Exit from Azureus complete"
MSG_TERMINATED="Azureus TERMINATED."
MSG_RECHECK="Re-checking with GCJ (Sun Java recommended).."
MSG_ISGCJ="Java is GCJ.. looking for Sun Java.."
MSG_JAVABORK="Java appeared to have crashed:"

SKIP_GCJ=1

runJavaOutput()
{
        TMP_SCRIPT=$(mktemp)
	
	${JAVA_PROGRAM_DIR}java ${JAVA_ARGS} \
		-cp "${CLASSPATH}" \
		-Djava.library.path="${PROGRAM_DIR}" \
		-Dazureus.install.path="${PROGRAM_DIR}" \
		-Dazureus.script="$0" \
		$JAVA_PROPS \
		"$@" > $TMP_SCRIPT
	
	if [ -f $TMP_SCRIPT ]; then
                chmod +x $TMP_SCRIPT
                . $TMP_SCRIPT
                rm $TMP_SCRIPT
        fi
}

echo $MSG_STARTING

# Change path here so we can do for loop on program dirs with spaces
cd "${PROGRAM_DIR}"

# build the classpath
for FILE in ./*.jar; do
	CLASSPATH="${CLASSPATH:+${CLASSPATH}:}$FILE"
done

# setup Java System Properties (no spaces in values)
JAVA_PROPS="-Dazureus.script.version=${SCRIPT_VERSION} -Dorg.eclipse.swt.browser.UseWebKitGTK=true -Dazureus.skipSWTcheck=1"

runJavaOutput "org.gudy.azureus2.platform.unix.ScriptBeforeStartup" "$@";

echo $MSG_LOADING

echo "${JAVA_PROGRAM_DIR}java ${JAVA_ARGS} -cp \"${CLASSPATH}\" -Djava.library.path=\"${PROGRAM_DIR}\" -Dazureus.install.path=\"${PROGRAM_DIR}\" -Dazureus.script=\"$0\" $JAVA_PROPS $START_CLASS $@"
# Don't use "exec -a Azureus ..." here as exec quits this script after completion,
# preventing ScriptAfterShutdown from running, which installs updates and does
# restarts
${JAVA_PROGRAM_DIR}java ${JAVA_ARGS} \
	-cp "${CLASSPATH}" \
	-Djava.library.path="${PROGRAM_DIR}" \
	-Dazureus.install.path="${PROGRAM_DIR}" \
	-Dazureus.script="$0" \
	$JAVA_PROPS \
	$START_CLASS "$@"

echo $MSG_AZEXIT

runJavaOutput "org.gudy.azureus2.platform.unix.ScriptAfterShutdown" "$@";

echo $MSG_TERMINATED
