#!/bin/sh
#
# chkconfig: 2345 30 89
# description: The NUT daemon
# processname: upsd
# config: /etc/ups/
# pidfile: /var/lib/nut/upsd.pid

WITHOUT_RC_COMPAT=1

# Source function library.
. /etc/init.d/functions

UPSDRVCTL=/sbin/upsdrvctl
PIDFILE=/var/lib/nut/upsd.pid
LOCKFILE=/var/lock/subsys/upsd
RETVAL=0

start() {
    action "Starting UPS drivers: " $UPSDRVCTL start
    RETVAL=$?
    [ "$RETVAL" = 0 ] || return $RETVAL

    msg_starting $"UPS daemon"
    start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --no-announce -- upsd
    RETVAL=$?
    return $RETVAL
}

stop() {
    msg_stopping $"UPS daemon"
    stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --no-announce -- upsd
    [ "$RETVAL" = 0 ] || return $RETVAL

    action "Stopping UPS drivers: " $UPSDRVCTL stop
    RETVAL=$?
    return $RETVAL
}

restart() {
	stop
	start
}

reload()
{
    msg_reloading upsd
    stop_daemon --pidfile "$PIDFILE" -HUP -- upsd
    RETVAL=$?
    return $RETVAL
}

# See how we are called.
case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    status)
	status --pidfile "$PIDFILE" -- upsd
	RETVAL=$?
	;;
    reload)
	reload
	;;
    restart)
	restart
	;;
    condstart)
	if [ ! -e "$LOCKFILE" ]; then
	    start
	fi
	;;
    condstop)
  	if [ -e "$LOCKFILE" ]; then
		stop
	fi
	;;
    condreload)
	if [ -e "$LOCKFILE" ]; then
	    reload
	fi    
	;;
    condrestart)
	if [ -e "$LOCKFILE" ]; then
	    restart
	fi    
	;;
    *)
	msg_usage "${0##*/} {start|stop|status|reload|restart|condstart|condstop|condreload|condrestart}"
	RETVAL=1
esac

exit $RETVAL
