#!/bin/bash
#
# chkconfig: - 26 74
# description: The ups daemon automatically starts a shutdown
# processname: upsd
# config: /etc/ups/

# Source function library.
if [ -f /etc/init.d/functions ]; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
  . /etc/rc.d/init.d/functions
else
 exit 0
fi

# Get config.
if [ -f /etc/sysconfig/ups ]; then
	. /etc/sysconfig/ups
else
	SERVER="no"
fi

start() {
	if [ "$SERVER" = "yes" ]; then
		prog="upsdrvctl"
		echo -n $"Starting $prog: "
		daemon /sbin/upsdrvctl start
		echo

		prog="upsd"
		echo -n $"Starting $prog: "
		daemon /usr/sbin/upsd
		RETVAL=$?
		echo

		echo -n $"Starting UPS monitor (master): "
		daemon /usr/sbin/upsmon
		echo
	else
		echo -n $"Starting UPS monitor (slave): "
		daemon /usr/sbin/upsmon
		echo
	fi

	[ "$RETVAL" = 0 ] && touch /var/lock/subsys/ups
}

stop() {
    echo -n $"Stopping UPS monitor: "
    killproc upsmon
    echo

    if [ "$SERVER" = "yes" ]; then
	prog="upsd"
	echo -n $"Stopping $prog: "
	killproc upsd
	RETVAL=$?
	echo

	prog="upsdrvctl"
	echo -n $"Stopping $prog: "
	/sbin/upsdrvctl stop
	echo
    fi
    [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/ups
}

restart() {
	stop
	start
}

# See how we are called.
case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart)
	restart
	;;
  condrestart)
	[ -f /var/lock/subsys/ups ] && restart || :
	;;
  status)
	status upsd
	status upsmon
	;;
  *)
	echo $"Usage: $0 {start|stop|restart|condrestart|status}"
	exit 1
esac

exit $RETVAL
