#!/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
    # Exit if server = yes and model = NONE (not configured)

	if [ "$MODEL" = "NONE" ]; then 
	    exit 0
	fi

	echo -n $"Starting $MODEL: "
	daemon /usr/bin/$MODEL $OPTIONS $DEVICE 
	echo

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

	echo -n $"Starting UPS monitor (master): "
	daemon /usr/bin/upsmon
	echo
    else
	echo -n $"Starting UPS monitor (slave): "
	daemon /usr/bin/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

	echo -n $"Shutting down $MODEL: "
	killproc $MODEL
	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)
	if [ "$HOST" = "localhost" ]; then
	    status upsd
	    status $MODEL
	fi
	status upsmon
	;;
  *)
	echo $"Usage: $0 {start|stop|restart|condrestart|status}"
	exit 1
esac

exit $RETVAL
