#!/bin/bash
#
#
# File for automatic startup of Vaisala rvp900
#
# chkconfig: 345 96 03
# description: Vaisala RVP900 startup file

### BEGIN INIT INFO
# Provides: rvp900 $rvp
# Required-Start: rdasys antennad
# Required-Stop: rdasys antennad
# Default-Stop: 0 1 6
# Short-Description: Start RVP900 daemon
# Description: Starts Vaisala RVP900 daemon
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions
. /etc/sigmet/profile.conf
. ${install_root}/config_template/LINUX/etc/profile.d/sigmet.sh

LOCK_FILE="rvp900"


if [ ! -x ${install_root}/bin/rvp9 ] ; then
    echo "ERROR: ${install_root}/bin/rvp9 file missing"
    exit 0
fi

RETVAL=0

start() {
  # Execute the commands to start rvp900
    PROCESSCOUNT=$(ps -ef | grep -v grep | grep -cw -E "rvp9.*")
    if [[ -f /var/lock/subsys/${LOCK_FILE} ]] && [[ ${PROCESSCOUNT} -eq 0 ]] ; then
        rm /var/lock/subsys/${LOCK_FILE}
    fi

    if [ ! -f /var/lock/subsys/${LOCK_FILE} ]; then
	echo -n $"Starting rvp900: "
        i=0
        while  ! (lsmod | grep rda > /dev/null) && ((i++ < 10))
        do
          sleep 2
        done

	if ((i >= 10)) ; then
          echo "ERROR: rda driver is not loaded!"
          exit 0
        fi
          
	${install_root}/bin/rvp9 -daemon
	RETVAL=$?
	if [ $RETVAL -eq 0 ] ; then
	    echo_success
	    touch /var/lock/subsys/${LOCK_FILE}
	else
	    echo_failure
	fi
	echo
    fi
    return $RETVAL
}

stop() {
    echo -n $"Stopping rvp900: "
    killproc rvp9 -TERM
    RETVAL=$?
    sleep 1 ; # Allow IPCS exit cleanups
    echo
    rm -f /var/lock/subsys/${LOCK_FILE}
    return $RETVAL
}


case $1 in

'start')
	start
	;;

'stop')
	stop
	;;
'status')
	status -l ${LOCK_FILE}
	;;
'restart')
        stop
        start
	;;

*)
	echo "usage: $0 {start|stop|restart}"
	;;
esac

exit $?
