#!/bin/sh
#
# rabbitmq-server RabbitMQ broker
#
# chkconfig: - 80 05
# description: Enable AMQP service provided by RabbitMQ
#

### BEGIN INIT INFO
# Provides:          rabbitmq-server
# Default-Start:
# Default-Stop:
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Description:       RabbitMQ broker
# Short-Description: Enable AMQP service provided by RabbitMQ broker
### END INIT INFO

. /etc/rc.d/init.d/functions

DAEMON=/usr/sbin/rabbitmq-multi
NAME=rabbitmq-server
DESC="RabbitMQ server"
USER=rabbitmq
NODE_COUNT=1
ROTATE_SUFFIX=

LOCKFILE=/var/lock/subsys/$NAME

[ -x $DAEMON ] || exit 0

# Include rabbitmq defaults if available
SourceIfNotEmpty /etc/sysconfig/rabbitmq-server

RETVAL=0

start_rabbitmq () {
    action "Starting $DESC: " \
       "${DAEMON}  start_all ${NODE_COUNT}"
    RETVAL=$?
    [ "$RETVAL" -ne 0 ] || touch "$LOCKFILE"
    return $RETVAL
}

stop_rabbitmq () {
    status_rabbitmq quiet
    if [ $RETVAL = 0 ] ; then
        action "Stopping $DESC: "  "$DAEMON stop_all" 
        RETVAL=$?
        [ $RETVAL -eq 0 ] || return
        action "Stopping erlang portmapper: " epmd -kill
        RETVAL=$?
        [ "$RETVAL" -ne 0 ] || rm -f -- "$LOCKFILE"
        return $RETVAL
    else
        msg_not_running "$DESC"
	failure "Not running"
	echo
        RETVAL=0
    fi
}

status_rabbitmq() {
    if [ "$1" != "quiet" ] ; then
        $DAEMON status 2>&1
    else
        $DAEMON status &>/dev/null
    fi
    if [ $? != 0 ] ; then
        RETVAL=1
    fi
}

rotate_logs_rabbitmq() {
    action "Rotating log files for $DESC: " \
        "$DAEMON rotate_logs ${ROTATE_SUFFIX}"
    RETVAL=$?
    return $RETVAL
}

restart_rabbitmq() {
    stop_rabbitmq	    
    start_rabbitmq
}

case "$1" in
    start)
        start_rabbitmq
        ;;
    stop)
        stop_rabbitmq
        ;;
    status)
        status_rabbitmq
        ;;
    rotate-logs)
        rotate_logs_rabbitmq
        ;;
    force-reload|reload|restart|condreload)
        restart_rabbitmq
        ;;
    condrestart|try-restart|condreload)
        if [ -e "$LOCKFILE" ]; then
                restart_rabbitmq
        fi
        ;;
    condstop|try-stop)
        if [ -e "$LOCKFILE" ]; then
                stop_rabbitmq
        fi
        ;;
    *)
        echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload|condstop|try-stop}" >&2
        RETVAL=2
        ;;
esac

exit $RETVAL
