#!/bin/sh
#
# imapd
#
# chkconfig: 2345 48 30
# description: imapd - Internet Message Access Protocol Daemon.
# processname: imapd
# config: /opt/nec/mail/mail.conf


mails_stop() {
  cd /var/run/imapd
  found=0
  for pid in * ; do
    if [ $pid != "*" ]; then
      if [ -f /proc/$pid/cmdline ]; then
        cmd=`cat /proc/$pid/status | head -1 | awk '{ print $2 }'`
        if [ $cmd == "imapd" ]; then
          kill $pid
          /opt/nec/mail/mkill $pid
          found=1
        else
          rm -f $pid
        fi
      else
        rm -f $pid
      fi
    fi
  done
  if [ $found == 1 ]; then
    echo -n " imapd"
  fi
}

mails_stop_internal() {
  cd /var/run/imapd
  for pid in * ; do
    if [ $pid != "*" ]; then
      if [ -f /proc/$pid/cmdline ]; then
        cmd=`cat /proc/$pid/status | head -1 | awk '{ print $2 }'`
        if [ $cmd == "imapd" ]; then
          kill $pid
          /opt/nec/mail/mkill $pid
        else
          rm -f $pid
        fi
      else
        rm -f $pid
      fi
    fi
  done
}


mails_start() {
  mails_stop_internal
  /opt/nec/mail/imapd
  echo -n " imapd"
}

# See how we were called.
case "$1" in
  start)
    echo -n "Starting imapd:"
    mails_start
    echo
    touch /var/lock/subsys/imapd
    ;;
  stop)
    echo -n "Shutting down imapd:"
    mails_stop
    echo
    rm -f /var/lock/subsys/imapd
    ;;
  status)
    cd /var/run/imapd
    for pid in * ; do
        if [ $pid == "*" ]; then
                echo "imapd is stopped"
                exit 0;
        fi
        if [ -f /proc/$pid/cmdline ]; then
                cmd=`cat /proc/$pid/status | head -1 | awk '{ print $2 }'`
                if [ $cmd != "imapd" ]; then
                        rm -f $pid
                fi
        else
                rm -f $pid
        fi
    done
    imappid=""
    for pid in * ; do
        if [ $pid == "*" ]; then
                echo "imapd is stopped"
                exit 0;
        fi
        if [ "$imappid" == "" ]; then
                imappid=$pid
        else
                imappid=`echo -n "$imappid $pid"`
        fi
    done
    echo "imapd (pid $imappid) is running..."
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  reload)
    echo -n "Reloading imapd:"
    mails_start
    echo
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0

