#!/bin/sh
#description: Framework serice startup/shutdown script

#Function to check status of Framework service
check_status() {
x=`ps -ef|grep java|grep Framework.jar`
if [ "$x" = "" ] ; then
	return 3;
fi
return 0
}

#Function to start Framework service
start() {
\rm -f /tmp/network_present
. /etc/init.d/msm_profile
network_flag=0
for (( i=0; i < 20; i++ ))
do
if [ -f "$MSM_HOME/Framework/TestNetworkCapability.class" ]
then
echo "$MSM_PRODUCT with Network Capability">>/tmp/vivaldi_startup.txt
"$MSM_HOME/jre/bin/java" -classpath "$MSM_HOME/jre/lib/rt.jar:$MSM_HOME/Framework" TestNetworkCapability
if [ -f /tmp/network_present ]
then
network_flag=1
i=21
\rm -f /tmp/network_present
else
sleep 5
fi
else
echo "$MSM_PRODUCT without Network Capability">>/tmp/vivaldi_startup.txt
network_flag=1
i=21
fi
done
if [ $network_flag -eq 1 ]
then
echo "Trying to start Framework.....">>/tmp/vivaldi_startup.txt
else
echo "$MSM_PRODUCT failed to start Framework..... Check your Network">>/tmp/vivaldi_startup.txt
echo "Trying to start Framework without Network Capability.....">>/tmp/vivaldi_startup.txt
fi
sh "$MSM_HOME/Framework/startup.sh" >> /tmp/vivaldi_startup.txt 2>>/tmp/vivaldi_startup.txt &
}

#function to stop Framework Service
stop() {
. /etc/init.d/msm_profile
sh "$MSM_HOME/Framework/shutdown.sh" >> /tmp/vivaldi_shutdown.txt &
}

case "$1" in
	start)
		check_status
		status=$?
		if [ $status = 0 ]; then
			echo "Framework is already running....."
		else
			echo "Starting Framework: "
			start
		fi
		;;
	stop)
		check_status
		status=$?
		if [ $status = 3 ]; then
			echo "Framework is already stopped....."
		else
			echo "Shutting down Framework: "
			stop
		fi
		;;
	restart|reload)
		$0 stop
		sleep 20
		$0 start
		;;
	status)
		check_status
		RETVAL=$?
		if [ $RETVAL = 0 ]; then
			echo "Framework is running..."
		else
			if [ $RETVAL = 3 ]; then
				echo "Framework is stopped..."
			else
				echo "Framework status unknown..."
			fi
		fi
		;;
	*)
		echo "Usage: $0 {start|stop|restart|status}"
		exit 1
esac
exit $RETVAL
