#! /bin/sh
#
#        asy.sh init script
#
# chkconfig: 2345 91 59
# description: ipmiutil async bridge agent, listens for IPMI LAN client requests
#
# This starts a daemon that listens for asynchronous IPMI LAN soft-shutdown 
# requests from a remote ipmiutil reset (-o/-D).  It depends upon an imb or 
# openipmi driver.
#
# Source function library.
# . /etc/init.d/functions

name="ipmiutil_asy bridge agent"
prog="ipmiutil getevt"
getevtlog=/var/log/ipmiutil_asy.log

getpid () {
    p=`ps -ef |grep $1 |grep -v grep |awk '{print $2}'`
    echo $p
}

start()
{
	gprintf "Starting %s: " "$name"
	echo
	driverok=0
        if [ "`lsmod | grep "ipmi_devintf"`" != "" ]
	then 
	   driverok=1
	fi
        if [ "`lsmod | grep "^imb "`" != "" ]
        then
	   driverok=1
	fi
	if [ $driverok -eq 1 ]
	then
           which ipmiutil >/dev/null 2>&1
           if [ $? -eq 0 ]
           then
                $prog -a -t0 >$getevtlog &
		RETVAL=$?
           fi
	else
	   gprintf "No imb or ipmi driver loaded, aborting.\n"
	   RETVAL=1
        fi
	echo
	return $RETVAL
}

stop()
{
	gprintf "Stopping %s: " "$prog"
	echo
        which ipmiutil >/dev/null 2>&1
        if [ $? -eq 0 ]
        then
                p=`getpid getevt`
                kill $p
		RETVAL=$?
	else
		RETVAL=1
	fi
	echo
	return $RETVAL
}           

restart() {
  	stop
	start
}	

# Begin mainline script here
case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  status)
	getpid getevt
	;;
  restart)
  	restart
	;;
  *)
	gprintf "Usage: %s {start|stop|status|restart}\n" "$0"
	exit 1
esac
