#!/bin/bash
#
# hpnragent init script.
#
# chkconfig: 345 99 00
# description: HP NetRAID agent daemon.

# source function library
. /usr/hpserver/etc/hp_functions


NAME=hpnragent
PATHNAME=/usr/hpserver/bin/hpnragent

test -x $PATHNAME || exit 1

###################################################
# function to create megasnmp device
###################################################
create_megasnmp_device() {
    if [ -d /proc/scsi/megaraid ]; then
        major=$( cat /proc/devices |grep megadev | cut -f1 -d " " )
        if [ ! $major = " " ]; then
	    #if megasnmp exists
	    if [ -c /etc/hpnrsnmp/megasnmp ]; then
		lsdev=`ls -l /etc/hpnrsnmp/megasnmp | cut -d',' -f1`
		# let size=${#lsdev}+1
		let size=`echo "$lsdev" | wc -c`
		let size1=$size-3
    		run_major=`echo "$lsdev" | cut -b$size1-$size`
		#if major diff running_major then update
		if [ $major -ne $run_major  ]; then
		    rm -f /etc/hpnrsnmp/megasnmp
		    mknod /etc/hpnrsnmp/megasnmp c $major 0
		fi
	    else
		if [ ! -d /etc/hpnrsnmp ]; then
		    mkdir /etc/hpnrsnmp
		fi
		mknod /etc/hpnrsnmp/megasnmp c $major 0
	    fi
	fi
    fi
    return 0
}

###################################################
# function to destroy the megasnmp device
###################################################
destroy_megasnmp_device() { 
    if [ -c /etc/hpnrsnmp/megasnmp ]; then
	rm -rf /etc/hpnrsnmp
    fi
    return 0
}


###################################################
# start the main part
###################################################

RETVAL=0

#
#	See how we were called.
#
case "$1" in
  start)
	# Check if hpnragent is already running
	if [ ! -f /var/lock/subsys/$NAME ]; then
	    echo -n 'Starting HP NetRAID agent daemon: '
	    create_megasnmp_device
	    $PATHNAME
	    RETVAL=$?
	    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$NAME && echo -n $NAME.
	    echo
	fi
	;;
  stop)
	echo -n 'Stopping HP NetRAID agent daemon: '
	hp_killproc $PATHNAME
	destroy_megasnmp_device
	rm -f /var/lock/subsys/$NAME && echo -n $NAME.
	echo
	;;
  reload|restart)
	$0 stop
	$0 start
	RETVAL=$?
	;;
#  status)
#	_status
#	RETVAL=$?
#	;;
#  showstatus)
#	_status
#	RETVAL=$?
#        if [ $RETVAL -eq 0 ]; then
#                echo "$NAME is running..."
#        else
#                echo "$NAME is NOT running..."
#        fi
#        RETVAL=0
#	;;
  *)
	# echo "Usage: /etc/rc.d/init.d/$NAME {start|stop|restart|reload|status|showstatus}"
	echo "Usage: /etc/rc.d/init.d/$NAME {start|stop|restart|reload}"	
	exit 1
esac

exit $RETVAL
