
#! /bin/sh

MEGHA_HOME=/usr/local/megha
PID_FILE=$MEGHA_HOME/misc/jetty.pid

if (test -e $MEGHA_HOME/misc/.upgrade_running) then
	echo "update/install is goinng on...."
	exit 0;
fi

if (test -e $MEGHA_HOME/misc/.purgedata_running) then
	echo "purge data is going on...."
	exit 0;
fi


MODE=`grep 'app.mode' $MEGHA_HOME/conf/app.properties | awk -F= '{print $2;}'`

# Apply patches if they exist
#PATCH_FILE=`ls -r /usr/local/megha/misc/.megha-probe-*.zip | head -1` > /dev/null 2>&1
PATCH_FILE=`find $MEGHA_HOME/misc \(  -name "\.*-${MODE}-*.zip" -printf %f \)`
CMD_PURGE_DATA=`find $MEGHA_HOME/misc -name "cmd_purgedata" -printf %f`
if [ "$PATCH_FILE" != "" ]; then
	#create the marker file for running upgrade script 
	touch $MEGHA_HOME/misc/.upgrade_running
	CMD=`find  $MEGHA_HOME/misc -name "cmd_*" -printf %f | cut -d_ -f3`
	FLG="-u"
	if [ "$CMD" == "upgrade" ]; then 
		echo "upgrade.."
		FLG="-u"
	elif [ "$CMD" == "install" ]; then
		echo "install.."
		FLG=""
	elif [ "$CMD" == "" ]; then
		echo "no command found in misc directory. using the default option upgrade."
		FLG="-u"
	fi
	echo "upgrading ......"
	$MEGHA_HOME/bin/upgrade.sh $FLG -b $PATCH_FILE
	rm -f $MEGHA_HOME/misc/$PATCH_FILE
	rm -f $MEGHA_HOME/misc/*-${MODE}-*.zip.hash
        rm -f $MEGHA_HOME/misc/cmd_*
	#remove the marker file as upgrade is completed
	rm -f $MEGHA_HOME/misc/.upgrade_running
	exit 0;
else 
	if [ "$CMD_PURGE_DATA" == "cmd_purgedata" ]; then
		#create the marker file for running purge-data script 
		touch $MEGHA_HOME/misc/.purgedata_running
		echo "cleaning server........"
		bash $MEGHA_HOME/bin/purge-data.sh -c
		#remove purgedata command file
		rm -f $MEGHA_HOME/misc/cmd_purgedata
		#remove the marker file as purgedata is completed
		rm -f $MEGHA_HOME/misc/.purgedata_running
	fi
fi

if (test -e $MEGHA_HOME/misc/.donotstart) then
	echo "megha server has to stopped."
	exit 0;
fi

TOTAL_MEM=`cat /proc/meminfo  | grep MemTotal | awk '{print $2;}'`
JVM_MEMORY_SIZE=`echo "print int(($TOTAL_MEM-524288)/1024)" | perl`

if [ $JVM_MEMORY_SIZE =  "" ]; then
    JVM_MEMORY_SIZE=512
fi

uname -a | grep i686 > /dev/null 2>&1
if [ "$?" = "0" ]; then
    JVM_MEMORY_SIZE=`echo "print $JVM_MEMORY_SIZE > 2000 ? 2000 : $JVM_MEMORY_SIZE" | perl`

fi

cd $MEGHA_HOME/jetty
export LANG=en_US.UTF-8
export PATH=$PATH:$MEGHA_HOME/lib/snmlib:/opt/emc/SYMCLI/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MEGHA_HOME/lib/snmlib
export SNMLIB_PATH=$MEGHA_HOME/lib/snmlib
export SNM_LAN_RETRY_COUNT=4
export SNM_LAN_RETRY_INTERVAL=30
export SYMCLI_OUTPUT_MODE=xml
export SYMCLI_CONNECT=SYMAPI_SERVER

###OLD CMD##java -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=20 -Xmx${JVM_MEMORY_SIZE}m -jar start.jar -Dapp.home=$MEGHA_HOME >> /dev/null 2>&1 &

java -XX:+UseParNewGC -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=20 -Xmx${JVM_MEMORY_SIZE}m -jar start.jar -Dapp.home=$MEGHA_HOME >> /dev/null 2>&1 &
echo $! > $MEGHA_HOME/misc/jetty.pid

