#!/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/mailmanctl
MAILMANPID=/var/lib/mailman/data/master-qrunner.pid
LOCKFILE=/var/lock/subsys/mailman
RETVAL=0

start()
{
    #rm -f $MAILMANHOME/locks/*
    if [ -e $LOCKFILE ]; then
	echo "Mailman satus is:"
	status
	RETVAL=1
    else
	action "Starting mailman:" $PYTHON $MAILMANCTL -s -q start
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
    fi
    return $RETVAL
}

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

status()
{
    ps -u mailman >/dev/null \
	&& ps -u mailman | tail +2 | awk '{print $1}' \
	|| echo mailman service is stoped
}

restart()
{
	action "Reloading mailman:" $PYTHON $MAILMANCTL -q restart
	RETVAL=$?
	return $RETVAL
}

reload()
{
	action "Reloading mailman:" /sbin/killproc -p $MAILMANPID -HUP $PYTHON
	RETVAL=$?
	return $RETVAL
}
    
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	condstart)
		[ ! -e $LOCKFILE ] && start
		;;
	condstop)
		[ -e $LOCKFILE ] && stop
		;;
	status)
		status
		;;
	restart)
		restart
		;;
	reload)
		reload
		;;
	*)
		echo "Usage: ${0##*/} {start|stop|status|restart|reload}"
		RETVAL=1
esac

exit $RETVAL
