#!/bin/sh

DISTRO=`lsb_release -si` || true

install-packages rabbitmq-server

# In Ubuntu rabbit's default init.d script is broken.
if [ x`lsb_release -si 2> /dev/null` = "xUbuntu" ]; then
  update-rc.d -f rabbitmq-server remove
  rm /etc/init.d/rabbitmq-server
  cat > /etc/init/rabbitmq-server.conf <<eof
start on runlevel [2345]
stop on runlevel [016]
respawn

exec /usr/sbin/rabbitmq-server > /var/log/rabbitmq/startup_log \\
                              2> /var/log/rabbitmq/startup_err
post-start exec /usr/sbin/rabbitmqctl wait >/dev/null 2>&1
eof
fi

if [ $DISTRO = "Fedora" ]; then
    # Delay the rc-local.service start-up until rabbitmq-server.service is started up
    sed -i 's/\[Unit\]/\[Unit\]\nBefore=rc-local.service/g' /lib/systemd/system/rabbitmq-server.service

    # Respawn rabbitmq-server in case the process exits with an nonzero exit code
    sed -i 's/\[Service\]/\[Service\]\nRestart=on-failure/g' /lib/systemd/system/rabbitmq-server.service

    # Make systemd take notice of it
    systemctl daemon-reload

    # Enable the service
    systemctl enable rabbitmq-server.service
fi
