#!/bin/bash
#
# Init script for ClamAV email virus scanner.
#
#
# chkconfig: 2345 78 30
# description: ClamAV virus scanner.
#
# processname: clamd
# config: /etc/opt/clamav-0.92.1/clamd.conf
# pidfile: /var/opt/clamav/run/clamav.pid

source /etc/init.d/functions

PKGNAM=clamav
PKGVER=0.92.1
PKG=${PKGNAM}-$PKGVER
CONFIGDIR=/etc/opt/$PKG
CONFIG=$CONFIGDIR/clamd.conf
PROG=clamd
SBINDIR=/usr/opt/$PKG/sbin
CLAMD=$SBINDIR/clamd
CLAMDCTL=$SBINDIR/clamdctl
SUBSYS=/var/lock/subsys/clamd
prog=clamd


[ -x $CLAMD ] || exit 1
[ -r $CONFIG ] || exit 1


### Default variables
CLAM_ACCOUNT="clam"
SYSCONFIG="/etc/sysconfig/clamd"


### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

RETVAL=0

desc="$PKG"

start() {
	echo -n $"Starting $desc ($prog): "
	daemon --user "$CLAM_ACCOUNT" $CLAMD -c $CONFIG
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch $SUBSYS
	return $RETVAL
}

stop() {
	echo -n $"Shutting down $desc ($prog): "
	su - $CLAM_ACCOUNT -c "$CLAMDCTL -q -c shutdown"
	if [ $? -eq 0 ] ; then
		rm -f /var/run/clamav/clamd.pid
		RETVAL=$?
		echo
	fi
	[ $RETVAL -eq 0 ] && rm -f $SUBSYS
	return $RETVAL
}

reload() {
	echo -n $"Reloading $desc ($prog): "
	su - $CLAM_ACCOUNT -c "$CLAMDCTL -q -c reload"
	RETVAL=$?
	echo
	return $RETVAL
}

restart() {
	stop
	start
}

case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart)
	restart
	;;
  reload)
	reload
	;;
  condrestart)
	[ -e /var/lock/subsys/$prog ] && restart
	RETVAL=$?
	;;
  status)
	su - $CLAM_ACCOUNT -c "$CLAMDCTL -c ping"
	status $prog
	RETVAL=$?
	;;
  *)
	echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
	RETVAL=1
esac

exit $RETVAL
