#! /bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start:
# Required-Stop:
# Default-Start:   3 4 5
# Default-Stop:
# Description:     HP NetRAID agent daemon.
### END INIT INFO

# Source function library.
. /etc/rc.status
. /etc/rc.config

test -x /usr/hpserver/bin/hpnragent || exit 5

###################################################
# function to create megasnmp device
###################################################
function 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 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
###################################################
function destroy_megasnmp_device() { 
    if [ -c /etc/hpnrsnmp/megasnmp ]; then
	rm -rf /etc/hpnrsnmp
    fi
    return 0
}


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

# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}

# Force execution if not called by a runlevel directory.
test $link = $base && START_HPNR="yes"
test "$START_HPNR" = yes || exit 0

#
#	See how we were called.
#
rc_reset
case "$1" in
  start)
	echo -n 'Starting HP NetRAID agent daemon: '
	create_megasnmp_device	
	startproc /usr/hpserver/bin/hpnragent
	rc_status -v
	;;
  stop)
	echo -n 'Stopping HP NetRAID agent daemon: '
	destroy_megasnmp_device	
	killproc /usr/hpserver/bin/hpnragent
	rc_status -v
	;;
  reload|restart)
	$0 stop
	$0 start
	rc_status
	;;
  status)
        echo -n 'Checking for process hrnragent: '
	checkproc /usr/hpserver/bin/hpnragent
	rc_status -v
	;;
  *)
	echo "Usage: /etc/init.d/hpnragent {start|stop|restart|reload|status}"
	exit 1
esac

rc_exit
