#!/bin/sh

# Get config.
[ -f "/etc/sysconfig/openfire" ] && . /etc/sysconfig/openfire

OPENFIRE_HOME="/usr/share/openfire"
OPENFIRE_LOGDIR="$OPENFIRE_HOME/logs"

# Attempt to locate java installation.
if [ -z "$JAVA_HOME" ]; then
	if [ -d "${OPENFIRE_HOME}/jre" ]; then
		JAVA_HOME="${OPENFIRE_HOME}/jre"
	elif [ -d "/etc/alternatives/jre" ]; then
		JAVA_HOME="/etc/alternatives/jre"
	else
		jdks=`ls -r1d /usr/java/j*`
		for jdk in $jdks; do
			if [ -f "${jdk}/bin/java" ]; then
				JAVA_HOME="$jdk"
				break
			fi
		done
	fi
fi

JAVACMD="${JAVA_HOME}/bin/java"

if [ ! -d "$JAVA_HOME" -o ! -x "$JAVACMD" ]; then
	echo "Error: JAVA_HOME is not defined correctly."
	echo "       Can not sure execute $JAVACMD."
	exit 1
fi

# Prepare location of openfire libraries
OPENFIRE_LIB="${OPENFIRE_HOME}/lib"

# Prepare openfire command line
OPENFIRE_OPTS="${OPENFIRE_OPTS} -DopenfireHome=${OPENFIRE_HOME} -Dopenfire.lib.dir=${OPENFIRE_LIB}"

# Prepare local java class path
if [ -z "$LOCALCLASSPATH" ]; then
	LOCALCLASSPATH="${OPENFIRE_LIB}/startup.jar"
else
	LOCALCLASSPATH="${OPENFIRE_LIB}/startup.jar:${LOCALCLASSPATH}"
fi

# Export any necessary variables
export JAVA_HOME JAVACMD

# Lastly, prepare the full command that we are going to run.
OPENFIRE_RUN_CMD="${JAVACMD} -server ${OPENFIRE_OPTS} -classpath ${LOCALCLASSPATH} -jar ${OPENFIRE_LIB}/startup.jar"

$OPENFIRE_RUN_CMD > $OPENFIRE_LOGDIR/startup.log 2>&1
