#! /bin/sh

OPTIONS="-c -l -s /var/lib/tftpboot"

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="HPA's tftpd"
NAME=in.tftpd
DAEMON=/usr/sbin/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/S80tftpd-hpa

#
#	Function that starts the daemon/service.
#
d_start() {
	mkdir -p /var/lib/tftpboot
	chmod 1777 /var/lib/tftpboot
	$DAEMON $OPTIONS
}

#
#	Function that stops the daemon/service.
#
d_stop() {
	killall -q $NAME
}

#
#	Function that sends a SIGHUP to the daemon/service.
#
d_reload() {
	d_start
	d_stop
}

case "$1" in
  start)
	echo -n "Starting $DESC: "
	d_start
	echo "done"
	;;
  stop)
	echo -n "Stopping $DESC: "
	d_stop
	echo "done"
	;;
  #reload)
	#
	#	If the daemon can reload its configuration without
	#	restarting (for example, when it is sent a SIGHUP),
	#	then implement that here.
	#
	#	If the daemon responds to changes in its config file
	#	directly anyway, make this an "exit 0".
	#
	# echo -n "Reloading $DESC configuration..."
	# d_reload
	# echo "done."
  #;;
  restart|force-reload)
	#
	#	If the "reload" option is implemented, move the "force-reload"
	#	option to the "reload" entry above. If not, "force-reload" is
	#	just the same as "restart".
	#
	echo -n "Restarting $DESC: "
	d_stop
	sleep 1
	d_start
	echo "done"
	;;
  *)
	# echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
