#!/bin/bash

### BEGIN INIT INFO
# Provides:          fitz-serve
# Required-Start:    $network $local_fs
# Required-Stop:     $network $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Fitz network file service
# Description:       Amiga compatible Network file service
### END INIT INFO

PATH="/sbin:/bin:/usr/sbin:/usr/bin"
DAEMON="/usr/local/bin/fitz-serve"
NAME="fitz-serve"
DESC="Fitz network file service"
DEFAULT="/etc/default/${NAME}"
PIDFILE="/run/${NAME}.pid"

source /lib/lsb/init-functions

[ -f "${DEFAULT}" ] && source "${DEFAULT}"
[ -x "${DAEMON}" ] || exit 5

check_running() {
	status_of_proc "${DAEMON}" "${NAME}" > /dev/null && return 0 || return 1
}

start_fitz-serve() {
	log_daemon_msg "Starting ${DESC}" "$NAME"

	if check_running
	then
		log_progress_msg "already running"
		log_end_msg 0
		return 0
	fi

	if start-stop-daemon --start \
		--pidfile "${PIDFILE}" \
		--make-pidfile \
		--background \
		--quiet \
		--exec "${DAEMON}" -- ${OPTIONS}
	then
		log_end_msg 0
		return 0
	else
		log_end_msg 1
		return 1
	fi
}

stop_fitz-serve() {
	log_daemon_msg "Stopping ${DESC}" "$NAME"

	if start-stop-daemon --stop \
		--pidfile "${PIDFILE}" \
		--remove-pidfile \
		--retry=HUP/5/TERM/10/KILL/5 \
		--quiet \
		--exec "${DAEMON}"
	then
		log_success_msg
	else
		log_failure_msg
		return 1
	fi
}

case "${1}" in
	start)
		start_fitz-serve || exit ${?}
	;;
	stop)
		stop_fitz-serve || exit ${?}
	;;
	restart)
		stop_fitz-serve
		start_fitz-serve || exit ${?}
	;;
	status)
		status_of_proc -p "${PIDFILE}" "${DAEMON}" "${NAME}"
		exit ${?}
	;;
	*)
		log_action_msg "Usage: ${0} {start|stop|restart|status}" >&2
	;;
esac
