#!/bin/sh
#
# mailgraph	This shell script takes care of starting and stopping
#		mailgraph service.
#
# chkconfig:	- 55 45
# description:	mailgraph watches postfix logfiles and generates www statistics

WITHOUT_RC_COMPAT=1

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

BINARY=/usr/sbin/mailgraph.pl
PIDFILE=/var/run/mailgraph/mailgraph.pid
RRD_DIR=/var/lib/mailgraph
USER=mailgraph

SourceIfNotEmpty /etc/sysconfig/mailgraph

if [ "$IGNORE_LOCALHOST" = "1" ]; then
	ADDITIONAL_ARGS="--ignore-localhost"
fi

if [ -n "$IGNORE_HOST" ]; then
		ADDITIONAL_ARGS="$ADDITIONAL_ARGS --ignore-host=$IGNORE_HOST"
fi

if [ "$ONLY_MAIL" = "1" ]; then
		ADDITIONAL_ARGS="$ADDITIONAL_ARGS --only-mail-rrd"
fi

if [ "$ONLY_VIRUS" = "1" ]; then
		ADDITIONAL_ARGS="$ADDITIONAL_ARGS --only-virus-rrd"
fi

if [ "$RBL_IS_SPAM" = "1" ]; then
		ADDITIONAL_ARGS="$ADDITIONAL_ARGS --rbl-is-spam"
fi

if [ "$VIRBL_IS_VIRUS" = "1" ]; then
		ADDITIONAL_ARGS="$ADDITIONAL_ARGS --virbl-is-virus"
fi

ARGS="-l $MAIL_LOG -d --daemon_rrd=$RRD_DIR --daemon_pid=$PIDFILE --daemon_log=$DAEMON_LOG $ADDITIONAL_ARGS"

start()
{
	start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" \
		--expect-user $USER --name mailgraph.pl --user $USER -- "$BINARY" $ARGS
	RETVAL=$?
	return $RETVAL
}

stop()
{
	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" \
		--expect-user $USER --name mailgraph.pl -- "$BINARY" $ARGS
	RETVAL=$?
	return $RETVAL
}

# See how we were called.
case "$1" in
  start)
  	start
	;;
  stop)
	stop;;
  status)
  	status --pidfile "$PIDFILE" --name mailgraph.pl -- mailgraph.pl
	exit $?
	;;
  condstop)
  	if [ -f "$LOCKFILE" ]; then
		stop
	fi
	;;
  condstart)
  	if [ ! -f "$LOCKFILE" ]; then
		start
	fi
	;;
  condrestart)
  	if [ -f "$LOCKFILE" ]; then
		stop
		start
	fi
	;;
  restart)
	stop
	start
	;;
  *)
        echo "Usage: $0 {start|stop|status|restart}"
        RETVAL=1
esac

exit $RETVAL
