#!/bin/sh
#
# mailman    This shell script that starts and stops GNU Mailman.
#
# Copyright (C) 2002 by the ALT Linux Team
#
# chkconfig: 2345 98 12
# description: Mailman is the GNU Mailing List Manager, a program that \
#              manages electronic mail discussion groups.  For more \
#              on GNU Mailman see http://www.list.org
# processname: mailmanctl
# config: /usr/share/mailman/Mailman/mm_cfg.py
# pidfile: /var/lib/mailman/data/master-qrunner.pid
#

. /etc/init.d/functions

PYTHON="/usr/bin/python"
MAILMANHOME="/usr/share/mailman"
MAILMANCTL="$MAILMANHOME/bin/wrapper.sh"
MAILMANPID="/var/lib/mailman/data/master-qrunner.pid"
LOCKFILE="/var/lock/subsys/mailman"
RETVAL=0

start()
{
	if [ -e "$LOCKFILE" ]; then
		msg_already_running mailman
		passed "mailman startup"
		RETVAL=$?
		echo
		return $RETVAL
	fi

	action "Starting mailman:" $MAILMANCTL start
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
	return $RETVAL
}

stop()
{
	action "Shutting down mailman:" $MAILMANCTL stop
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE" "$MAILMANPID"
	return $RETVAL
}

stat()
{
	status --pidfile "$MAILMANPID" --expect-user mailman $PYTHON
	RETVAL=$?
	return $RETVAL
}

restart()
{
	action "Restarting mailman:" $MAILMANCTL restart
	RETVAL=$?
	return $RETVAL
}

reload()
{
	action "Reloading mailman:" $MAILMANCTL reopen
	RETVAL=$?
	return $RETVAL
}

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	condrestart)
		[ -e $MAILMANPID ] && restart
		;;
	condstop)
		[ -e $MAILMANPID ] && stop
		;;
	status)
		stat
		;;
	graceful)
		restart
		;;
	restart)
		stop
		sleep 5
		start
		;;
	reload)
		reload
		;;
	*)
		echo "Usage: ${0##*/} {start|stop|status|graceful|restart|reload|condstop|condrestart}"
		RETVAL=1
esac

exit $RETVAL
