#!/bin/sh
#
# WatchPoint Workflow Control Script
#
# chkconfig: 35 80 20
# Provides: workflow
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: WatchPoint Workflow System Server
#
PRODUCT_HOME=/opt/tandbergtv/cms

#define the user under which jboss will run, or use RUNASIS to run as the current user
JBOSSUS=${JBOSSUS:-"nobody"}

if [ "$JBOSSUS" = "RUNASIS" ]; then
  SUBIT=""
else
  SUBIT="sudo -u $JBOSSUS "
fi

PROGNAME=`basename $0`

#define where jboss is - this is the directory containing directories log, bin, conf etc
JBOSS_HOME=${JBOSS_HOME:-"$PRODUCT_HOME/jboss"}

if [ ! -d "$JBOSS_HOME" ]; then
  echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME
  exit 1
fi

# Setup the java endorsed dirs
JBOSS_ENDORSED_DIRS="$JBOSS_HOME/lib/endorsed"

#define the classpath for the shutdown class
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}

# Setup the classpath
JBOSS_BOOT_CLASSPATH="$JBOSS_HOME/bin/run.jar"
JBOSS_CLASSPATH="$JBOSS_BOOT_CLASSPATH:$PRODUCT_HOME/workflow/lib"

# Setup properties

JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote"
JAVA_OPTS="$JAVA_OPTS -Dcom.tandbergtv.cms.product.dir=$PRODUCT_HOME -Xmx10240m -XX:+HeapDumpOnOutOfMemoryError -XX:MaxPermSize=256m"

CMD_START="java $JAVA_OPTS -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" -classpath "$JBOSS_CLASSPATH" org.jboss.Main "$@" --configuration=standard -b 0.0.0.0"
CMD_STOP="java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"

case "$1" in
start)
	echo "Starting WatchPoint Workflow Server"
	cd $JBOSS_HOME/bin
	if [ -z "$SUBIT" ]; then
		eval env LANG=en_US.UTF-8 $CMD_START >/dev/null 2>&1 &
	else
# Forward port 80 to 8080
#		iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
		$SUBIT env LANG=en_US.UTF-8 $CMD_START >/dev/null 2>&1 &
	fi
	;;
stop)
	echo "Stopping WatchPoint Workflow Server"
	if [ -z "$SUBIT" ]; then
		$CMD_STOP &
	else
		$SUBIT $CMD_STOP >/dev/null 2>&1 &
	fi

	pid=$(ps axww | grep "[o]rg.jboss.Main" | sed -e 's/^\s*//' | cut -d' ' -f1)
	if [ ! -z "${pid}" ] ; then
		kill -9 $pid # PURE MASSACRE
	fi
	;;
status)
	pid=$(ps axww | grep "[o]rg.jboss.Main" | sed -e 's/^\s*//' | cut -d' ' -f1)
	if [ -z "${pid}" ] ; then
		echo "workflow is stopped"
	else
		echo "workflow (pid " $pid") is running..."
	fi
	;;
restart)
	$0 stop
	$0 start
	;;
*)
	echo "usage: $0 (start|stop|restart|status)"
	;;
esac


