#!/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
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
}
    
case "$1" in
    start)
	start
	;;
    stop)
	stop
        ;;
    status)
	status
	;;
    restart|reload)
	restart
        ;;
    *)
	echo "Usage: ${0##*/} {start|stop|status|restart}"
	RETVAL=1
esac

exit $RETVAL
