#!/bin/bash
#
# mqttcool    MQTT.Cool Server
#
# chkconfig: - 85 15
# description: MQTT.Cool Server, https://mqtt.cool
#
### BEGIN INIT INFO
# Provides:          mqttcool
# Required-Start:    $network
# Required-Stop:     $network
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: MQTT.Cool Server
# Description:       MQTT.Cool Server - https://mqtt.cool
### END INIT INFO

# Source function library.
. /etc/init.d/functions

# MQTT.Cool specific settings
# MC_HOME=/opt/mqtt.cool
MC_HOME=%MC_HOME%
# MC_USER=mqttcool
MC_USER=%MC_USER%
# MC_GROUP=mqttcool
MC_GROUP=%MC_GROUP%

DAEMON="${MC_HOME}/bin/unix-like/mc.sh"
PIDFILE="/var/run/mqttcool.pid"
PROG="mqttcool"

RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}

# For SELinux we need to use 'runuser' not 'su'
if [ -x "/sbin/runuser" ]; then
    SU="/sbin/runuser"
else
    SU="/bin/su"
fi

ls_start() {
	echo $"Starting MQTT.Cool"
  $SU -s /bin/bash $MC_USER -c " ${DAEMON} run" > /dev/null &
	PID=$!
	RETVAL=$?
        [ $RETVAL -eq 0 ] && {
		touch /var/lock/subsys/mqttcool;
		echo "${PID}" > "${PIDFILE}";
	}
}

ls_stop() {
	echo $"Stopping MQTT.Cool"
	killproc -p "${PIDFILE}" -d "${STOP_TIMEOUT}" "${DAEMON}"
	RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/mqttcool
}

case "$1" in
  start)
	ls_start
        ;;
  stop)
	ls_stop
        ;;
  restart)
	ls_stop && ls_start
	RETVAL=$?
	;;
  status)
    status -p "${PIDFILE}" "${PROG}"
	;;
 *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac

exit ${RETVAL}
