#!/bin/sh
# Démarre, arrête et surveille le serveur BDthèque (lancé par DSM sous l'utilisateur du paquet).
PKG="bdtheque"
BIN="/var/packages/$PKG/target/bin/bdtheque"
VAR="/var/packages/$PKG/var"
PID_FILE="$VAR/bdtheque.pid"
LOG_FILE="$VAR/bdtheque.log"

running() {
	[ -f "$PID_FILE" ] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null
}

case "$1" in
	start)
		running && exit 0
		if [ -f "$LOG_FILE" ] && [ "$(wc -c < "$LOG_FILE")" -gt 5000000 ]; then
			mv -f "$LOG_FILE" "$LOG_FILE.1"
		fi
		# port modifiable en écrivant par exemple « :8421 » dans var/listen
		LISTEN=":8420"
		[ -s "$VAR/listen" ] && LISTEN="$(cat "$VAR/listen")"
		"$BIN" -data "$VAR" -listen "$LISTEN" >> "$LOG_FILE" 2>&1 &
		echo $! > "$PID_FILE"
		sleep 2
		running && exit 0
		echo "Le serveur BDthèque n'a pas démarré : voir $LOG_FILE" > "$SYNOPKG_TEMP_LOGFILE"
		exit 1
		;;
	stop)
		if running; then
			kill "$(cat "$PID_FILE")"
			i=0
			while running && [ $i -lt 15 ]; do
				sleep 1
				i=$((i + 1))
			done
			running && kill -9 "$(cat "$PID_FILE")"
		fi
		rm -f "$PID_FILE"
		exit 0
		;;
	status)
		running && exit 0
		[ -f "$PID_FILE" ] && exit 1
		exit 3
		;;
esac
exit 0
