#!/bin/sh
#
# Start/stop ejabberd
#

DAEMON=ejabberd
CTL=/usr/sbin/ejabberdctl
DEFAULT=/etc/ejabberd/ejabberdctl.cfg
INSTALLUSER=ejabberd
RUNDIR=/var/run/ejabberd

# Read default configuration file if present.
# shellcheck source=/dev/null
[ -r "$DEFAULT" ] && . "$DEFAULT"

# Create RUNDIR.
mkrundir() {
	install -d -o "$INSTALLUSER" -g "$INSTALLUSER" "$RUNDIR"
}

case "$1" in
	start)
		mkrundir || exit 1
		printf 'Starting %s: ' "$DAEMON"
		"$CTL" start
		# Wait until ejabberd is up and running.
		if "$CTL" started; then
			echo "done"
		else
			echo "failed"
		fi
		;;
	stop)
		printf 'Stopping %s: ' "$DAEMON"
		"$CTL" stop > /dev/null
		if [ $? -eq 3 ] || "$CTL" stopped; then
			echo "OK"
		else
			echo "failed"
		fi
		;;
	status)
		"$CTL" status
		;;
	restart|force-reload)
		"$0" stop || true
		"$0" start
		;;
	live)
		mkrundir || exit 1
		"$CTL" live
		;;
	*)
		echo "Usage: $0 {start|stop|status|restart|force-reload|live}"
		exit 1
esac
