#!/bin/sh
# Startup script for Mailman
#
# chkconfig: - 98 12
# description: Mailman mailing list manager
# processname: mailmanctl

# Source function library.
. /usr/local/etc/rc.d/functions

[ -x /usr/local/bin/python ] || exit 0

PATH="$PATH:/usr/local/sbin"
PYTHON=/usr/local/bin/python
MAILMANHOME=/usr/local/mailman
MAILMANCTL=$MAILMANHOME/bin/mailmanctl
SRC_CRON_SCRIPT=$MAILMANHOME/cron/crontab.in
DST_CRON_SCRIPT=/etc/cron.d/mailman

InstallCron()
{
    install -m644 -o root -g root $SRC_CRON_SCRIPT $DST_CRON_SCRIPT
}

RemoveCron()
{
cat > $DST_CRON_SCRIPT <<EOF
# DO NOT EDIT THIS FILE!
#
# Contents of this file managed by /etc/init.d/mailman
# Master copy is /usr/local/mailman/cron/crontab.in
# Consult that file for documentation
EOF
}

RETVAL=0

LOCK_FILE=/var/spool/lock/pure-ftpd

start() {
        echo -n "Starting mailmanctl: "
		daemon $PYTHON $MAILMANCTL -s -q start
        RETVAL=$?
        if [ $RETVAL -eq 0 ] && touch $LOCK_FILE
		then
			InstallCron
			echo -e "\t\t[ OK ]";
		else
			echo -e "\t\t[ FAILED ]";
		fi
        return $RETVAL
}

stop() {
        echo -n "Shutting down mailmanctl: "
		daemon $PYTHON $MAILMANCTL -q stop
        RETVAL=$?
        if [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
		then
			RemoveCron
			echo -e "\t\t[ OK ]";
		else
			echo -e "\t\t[ FAILED ]";
		fi
        return $RETVAL
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        $PYTHON $MAILMANCTL -u status
        RETVAL=$?
        ;;
  restart)
        stop
        start
        RETVAL=$?
        ;;
  condrestart)
		$PYTHON $MAILMANCTL -q -u status
		restart
		echo
		;;
  *)
        echo "Usage: pure-ftpd {start|stop|restart|condrestart|status}"
        exit 1
esac

exit $RETVAL
