#!/bin/sh

DSRDIR=/var/packages/BeemoBackupAgent/target/dsr
DSR=$DSRDIR/dsr
PIDFILE="$DSRDIR/conf/pid"
PID=""
RUNNING=0

check_running()
{
	RUNNING=0
	if [ -f $PIDFILE ]; then
		PID=$(cat $PIDFILE)
		IS_RUNNING=`ps u -p $PID | grep $DSR | grep -v grep`
		if [ ! -z "$IS_RUNNING" ]; then
			RUNNING=1
		fi
	fi
}

wait_running()
{
	check_running

	if [ "$1" -eq "$RUNNING" ]; then
		echo "done."
		return
	fi

	WAIT=0
	while [[ "$WAIT" -lt 20 && "$1" -ne "$RUNNING" ]]; do
		WAIT=$(expr $WAIT + 1)
		sleep 1
		check_running
	done

	if [ "$1" -eq "$RUNNING" ]; then
		echo "done."
	else
		echo "failed."
	fi
}

dsr_start()
{
	echo -n "Starting Data Safe Restore: "
	check_running
	if [ "$RUNNING" -eq 1 ]; then
		echo "Already Running"
	else
		nohup $DSR &> /dev/null &
		wait_running 1
	fi
}

dsr_stop()
{
	echo -n "Stopping Data Safe Restore: "
	check_running
	if [ "$RUNNING" -eq 0 ]; then
		echo "Not Running"
	else
		kill $PID
		wait_running 0
	fi
}

case $1 in
	start)
		sed -i 's|package.*|root"|g' /var/packages/BeemoBackupAgent/conf/privilege
		dsr_start
		#echo "the package has been started" > $SYNOPKG_TEMP_LOGFILE
		exit 0
	;;
	stop)
		dsr_stop
		#echo "the package has been stopped" > $SYNOPKG_TEMP_LOGFILE
		exit 0
	;;
	restart)
		dsr_stop
		sed -i 's|package.*|root"|g' /var/packages/BeemoBackupAgent/conf/privilege
		dsr_start
		exit 0
	;;
	status)
		check_running
		if [ "$RUNNING" -eq 1 ]; then
			echo "DSR is Running with pid $PID"
			exit 0
		else
			echo "DSR is not running"
			exit 1
		fi
	;;
	killall)
        ;;
	log)
		exit 0
	;;
esac
