#!/bin/sh
#
# Author: Per Øyvind Karlsen <peroyvind@mandriva.org>
#
### BEGIN INIT INFO
# Provides: git-daemon
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Daemon for Telldus Tellstick
# Short-Description: Daemon for Telldus Tellstick
### END INIT INFO

. /etc/init.d/functions

EXEC_FILE=telldusd
EXEC_PATH=/usr/sbin/${EXEC_FILE}
NAME="Telldus Tellstick daemon"
TELLDUSD_CONFIG=/etc/tellstick.conf
LOCK_FILE=/var/lock/subsys/${EXEC_FILE}
PID_FILE=/var/run/${EXEC_FILE}.pid

if [ ! -r $TELLDUSD_CONFIG ]; then
    [ "$1" = "stop" ] && exit 0
    gprintf "%s needs to exist and be readable\n" "$TELLDUSD_CONFIG"
    exit 6
fi

if [ ! -x $EXEC_PATH ]; then
    [ "$1" = "stop" ] && exit 0
    gprintf "%s needs to exist and be executable\n" "$EXEC_PATH"
    exit 5
fi

start()
{
	gprintf "Starting %s: " "${NAME}"
	daemon --pidfile=${PID_FILE} $EXEC_PATH
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch ${LOCK_FILE}
	return $RETVAL
}

stop()
{
	gprintf "Shutting down %s: " "${NAME}"
	killproc -p ${PID_FILE}
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f ${LOCK_FILE}
}

rh_status()
{
	status -p ${PID_FILE} -l $(basename ${LOCK_FILE}) ${EXEC_FILE}
	RETVAL=$?
	return $RETVAL
}

rh_status_q()
{
	return $(rh_status >/dev/null 2>&1)
}

case "$1" in
    start)
	rh_status_q && exit 0
	$1
        ;;
    stop)
	$1
        ;;
    restart)
	stop
	start
        ;;
    condrestart|try-restart)
	rh_status_q || exit 0
	stop
	# avoid race
	sleep 5
	start
        ;;
    status)
	rh_status
        ;;
    *)
        gprintf "Usage: %s {start|stop|status|restart|condrestart}\n" $0
        RETVAL=2
        ;;
esac
exit $RETVAL

