#!/bin/bash
### BEGIN INIT INFO
# Provides: orchid_onvif_autodiscovery
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: orchid_onvif_autodiscovery daemon
### END INIT INFO

error_out_if_not_root() {
    if [[ $EUID -ne 0 ]]; then
        echo 'Must run as root user.'
        exit 1
    fi
}

NAME=orchid_onvif_autodiscovery
PIDFILE=/var/run/$NAME.pid
DAEMON="/opt/orchid/bin/onvif_autodiscovery_service"
DAEMON_ARGS="-c /etc/opt --pidfile=${PIDFILE}"

. /lib/lsb/init-functions

case "$1" in
    start)
        error_out_if_not_root

        (status_of_proc -p $PIDFILE $DAEMON $NAME > /dev/null)
        if [[ $? -eq 0 ]]; then
            log_daemon_msg "$NAME is already running"
        else
            log_daemon_msg "Starting $NAME"
            start-stop-daemon --start --background --startas $DAEMON --pidfile $PIDFILE -- $DAEMON_ARGS
            log_end_msg $?
        fi
        ;;
    status)
        status_of_proc -p $PIDFILE $DAEMON $NAME
        ;;
    stop)
        error_out_if_not_root

        (status_of_proc -p $PIDFILE $DAEMON $NAME > /dev/null)
        if [[ $? -eq 0 ]]; then
            log_daemon_msg "Stopping $NAME"
            start-stop-daemon --stop --retry 90 --pidfile $PIDFILE
            log_end_msg $?
        else
            log_daemon_msg "$NAME is not currently running."
        fi
        ;;
    restart)
        error_out_if_not_root

        log_daemon_msg "Restarting $NAME"
        ($0 stop && $0 start) > /dev/null
        log_end_msg $?
        ;;
    *)
        echo "Usage: $0 {status|start|stop|restart}"
        exit 1
esac
