#!/bin/sh
# Start the rippa stuff

RUNNINGAPPSDIR=/ross/app/bin
RUNNINGAPPSDIRCONFIGPATH=/ross/etc/runningAppsPath
SCRIPTDIR=/ross/app/rippa/node/scripts

if [ -f "$RUNNINGAPPSDIRCONFIGPATH" ]; then
        RADPATH=$(cat $RUNNINGAPPSDIRCONFIGPATH)
        if [ -d "$RADPATH" ]; then
                RUNNINGAPPSDIR=$RADPATH
        fi
fi
MV="$RUNNINGAPPSDIR"/mv_control

WAITTIMEOUT=300

trap 'quit=1' SIGURG
quit=0

wait_bist(){
	starttime=`cut -f1 -d. /proc/uptime`
	sum=$(($starttime + $WAITTIMEOUT))
	echo "Starting WAIT For hwmon BIST $starttime"
	uptime=`cut -f1 -d. /proc/uptime`
	while [ $uptime -lt $sum ]
	do
		uptime=`cut -f1 -d. /proc/uptime`
		wait_fpga=$($MV --slots-io-dn)
		echo "PRBS BIST Enabled Waiting for IOCARDS $wait_fpga boottime=$uptime"
		sleep 1
		if [ "$quit" -eq 1 ]; then
			echo -e "Successfully waited for XCVR BIST $uptime secs"
			break
		fi
	done
	echo "Done WAIT For hwmon BIST $uptime"
}

start() {
	rm /tmp/rrti_lane.rsp
	echo "Starting MV service in local mode" 
	if [ -e /ross/etc/run_boot_bist ]; then
		$SCRIPTDIR/rippaComponent.sh start mv_ogp " --bist-boot $$  --log LOG_INFO"
		wait_bist
	else
		$SCRIPTDIR/rippaComponent.sh start mv_ogp "  --log LOG_INFO"
	fi
	echo -n "Starting ultrixrouter service: "
	$SCRIPTDIR/rippaComponent.sh start ultrixrouter

	echo "OK"
}

stop() {
	echo "Removing /tmp/rrti_lane.rsp: "
	rm /tmp/rrti_lane.rsp
	echo "Stopping Ultrixrouter: "
	killall ultrixrouter
	echo "Stopping mv_ogp: "
	killall mv_ogp
	echo "Stopping ANC capture: "
	$MV --anc-stopall
	echo "Ultrix Services stopped: "
}

restart() {
	stop
	sleep 1
	start
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        restart
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
esac

