#! /bin/sh
#		Written by Miquel van Smoorenburg <miquels@cistron.nl>.
#		Modified for Debian GNU/Linux
#		by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#               Clamav version by Magnus Ekdahl <magnus@debian.org>
#
# Version:	1.9 2003-07-20 magnus@debian.org

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/clamd
NAME="clamd"
DESC="clamav daemon"
CLAMAVCONF=/etc/clamav/clamav.conf

test -f $DAEMON || exit 0

if [ -f /etc/default/clamav-daemon ]; then
  . /etc/default/clamav-daemon
fi

set -e

if [ ! -f $CLAMAVCONF ]; then
  echo "There is no configuration file for Clamav."
  echo "Please either dpkg-reconfigure $DESC, or copy the example from"
  echo "/usr/share/doc/clamav-daemon/examples/ to $CLAMAVCONF and run"
  echo "'/etc/init.d/clamav-daemon start'"
  exit 0;
fi

if grep -q "^Example" $CLAMAVCONF; then
  echo "Clamav is not configured."
  echo "Please edit $CLAMAVCONF and run  '/etc/init.d/clamav-daemon start'"
  exit 0
fi

THEPIDFILE="`grep ^PidFile $CLAMAVCONF | sed -e 's/PidFile //'`"
THESOCKET="`grep ^LocalSocket $CLAMAVCONF | sed -e 's/LocalSocket //'`"

case "$1" in
  start)
  echo -n "Starting $DESC: $NAME"
  if [ -e "$THESOCKET" ]; then
    rm -f "$THESOCKET" || echo "Couldn't remove socket"
  fi
  start-stop-daemon --oknodo -S --exec $DAEMON
  echo "."
  ;;
  stop)
  echo -n "Stopping $DESC: $NAME"
  start-stop-daemon --oknodo -K -q -R 30 -p $THEPIDFILE $DAEMON
  if [ -e "$THESOCKET" ]; then
    rm -f "$THESOCKET" || echo "Couldn't remove socket"
  fi
  echo "."
  ;;
  restart|force-reload)
  echo "Restarting $DESC: $NAME"
  start-stop-daemon --oknodo -K -q -R 30 -p $THEPIDFILE $DAEMON
  if [ -e "$THESOCKET" ]; then
    rm -f "$THESOCKET" || echo "Couldn't remove socket"
  fi
  start-stop-daemon --oknodo -S --exec $DAEMON
  ;;
  reload)
  echo -n "Reloading $DESC: $NAME"
  start-stop-daemon --oknodo --stop --quiet --signal 1 --pidfile $THEPIDFILE --exec $DAEMON
  echo "."
  ;;
  *)
  echo "Usage: $0 {start|stop|reload|restart|force-reload}" >&2
  exit 1
  ;;
esac

exit 0
