#! /bin/sh
# tvheadend startup script inspired by the Debian one in the package

# Author: Yann E. MORIN <yann.morin.1998@free.fr>

PATH=/usr/sbin:/usr/bin:/sbin:/bin
NAME=tvheadend
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid

[ -f "${DAEMON}" -a -x "${DAEMON}" ] || exit 0

# Read configuration variable file if it is present
[ -r "/etc/default/${NAME}" ] && . "/etc/default/${NAME}"

ARGS="-f"
[ -z "${TVH_USER}"      ] || ARGS="${ARGS} -u ${TVH_USER}"
[ -z "${TVH_GROUP}"     ] || ARGS="${ARGS} -g ${TVH_GROUP}"
[ -z "${TVH_ADAPTERS}"  ] || ARGS="${ARGS} -a ${TVH_ADAPTERS}"
[ -z "${TVH_HTTP_PORT}" ] || ARGS="${ARGS} -w ${TVH_HTTP_PORT}"
[ -z "${TVH_HTSP_PORT}" ] || ARGS="${ARGS} -e ${TVH_HTSP_PORT}"
[ "${TVH_DEBUG}" = "1"  ] && ARGS="${ARGS} -s"

case "$1" in
    start)
        printf "Starting TVHeadend daemon: "
        if start-stop-daemon -S -q -p ${PIDFILE} -m --exec "${DAEMON}" -- ${ARGS}; then
            printf "OK\n"
        else
            printf "failed\n"
        fi
        ;;
    stop)
        printf "Stoping TVHeadend daemon: "
        start-stop-daemon -K -q -p ${PIDFILE} -s TERM
        sleep 2
        if start-stop-daemon -K -q -p ${PIDFILE} -t; then
            printf "failed, killing: "
            start-stop-daemon -K -q -p ${PIDFILE} -s KILL -o
        fi
        printf "OK\n"
        ;;
    restart|force-reload)
        "${0}" stop
        sleep 2
        "${0}" stop
        ;;
    *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

:
