#!/bin/sh
### BEGIN INIT INFO
# Provides:          uhub
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin

NAME=uhub
DESC="ADC hub"
DAEMON=/usr/bin/uhub
PIDFILE=/var/run/uhub/uhub.pid
LOGFILE=/var/log/uhub/uhub.log
SCRIPTNAME=/etc/init.d/uhub

DEFAULTFILE=/etc/default/uhub
[ -r $DEFAULTFILE ] && . $DEFAULTFILE

DAEMON_ENABLE="${UHUB_ENABLE}"
DAEMON_OPTS="-l ${LOGFILE} -f -p ${PIDFILE}"

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

ulimit -n 65536
mkdir -p /var/run/uhub/

set -e

case "$1" in
	start)
		if [ "$DAEMON_ENABLE" != "true" ]; then
			log_daemon_msg "Disabled $DESC" $NAME
			log_end_msg 0
			exit 0
		fi

		log_daemon_msg "Starting $DESC" $NAME
		if ! start-stop-daemon --start --quiet --oknodo \
			--pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
		then
			log_end_msg 1
		else
			log_end_msg 0
		fi
		;;

	stop)
		log_daemon_msg "Stopping $DESC" $NAME
		if start-stop-daemon --quiet --stop --oknodo --retry 30 --oknodo \
			--pidfile $PIDFILE --exec $DAEMON
		then
			rm -f $PIDFILE
			log_end_msg 0
		else
			log_end_msg 1
		fi
		;;

	reload)
		log_daemon_msg "Reloading $DESC configuration" $NAME
		if start-stop-daemon --stop --signal 2 --oknodo --retry 30 --oknodo \
			--quiet --pidfile $PIDFILE --exec $DAEMON
		then
			if start-stop-daemon --start --quiet  \
				--pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS ; then
				log_end_msg 0
			else
				log_end_msg 1
			fi
		else
			log_end_msg 1
		fi
		;;

	restart|force-reload)
		$0 stop
		$0 start
		;;

	status)
		status_of_proc $DAEMON $NAME && exit 0 || exit $?
		;;

	*)
		echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2
		exit 1
		;;
esac

exit 0