#!/bin/bash
#
# skeleton	example file to build /etc/init.d/ scripts.
#		This file should be used to construct scripts for /etc/init.d.
#
#		Written by Miquel van Smoorenburg <miquels@cistron.nl>.
#		Modified for Debian GNU/Linux
#		by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version:	@(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
#
# This file was automatically customized by dh-make on Thu, 13 May 2004 13:29:53 +0200

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/4ss_manager
DAEMON_PROGRAM=/usr/share/4Suite/4ssd
NAME="4ssd"
PIDDIR="/var/run/4Suite"
LOGDIR="/var/log/4Suite"
DESC="4Suite Repository Dashboard"

DAEMON_STARTOPTIONS="start"
DAEMON_RESTARTOPTIONS="restart"
DAEMON_STOPOPTIONS="stop"
DAEMON_USER="ftss"
FTSS_CORE_ID="Core"

test -r /etc/default/4ss && source /etc/default/4ss

test -x $DAEMON -o -L $DAEMON || exit 0

PIDFILE=${PIDFILE:-"$PIDDIR/4ss.pid"}

export FTSS_USERNAME
export FTSS_PASSWORD
export FTSS_CORE_ID
[ -n "$FTSS_USERNAME" -a -n "$FTSS_PASSWORD" -a -n "$FTSS_CORE_ID" ] && \
export FTSS_ENVIRONMENT=${FTSS_ENVIRONMENT:-"('$FTSS_USERNAME','$FTSS_PASSWORD','$FTSS_CORE_ID')"}

function check_pidfile ()
{
	if [ -e "$PIDFILE" ]; then
		pid=`cat $PIDFILE`
		if [ -e "/proc/$pid/cmdline" ]; then
			# Determine if the PID belongs to our $DAEMON
			if ! grep -q "$DAEMON_PROGRAM" "/proc/$pid/cmdline"; then
				# This PID file is pending for deletetion.
				rm -f "$PIDFILE"
			fi
		else
			# This PID file is pending for deletetion.
			rm -f "$PIDFILE"
		fi
	fi
}

set -e

case "$1" in
  start)
	echo -n "Starting $DESC: "
	check_pidfile
	if [ ! -s "$PIDFILE" ]; then
		if [ \( -n "$FTSS_USERNAME" -a -n "$FTSS_PASSWORD" \) -o "$DAEMON_STARTOPTIONS" != "start" ]; then
			mkdir -p "$PIDDIR"
			chown -R "${DAEMON_USER}:" "$PIDDIR"
			mkdir -p "$LOGDIR"
			chown -R "${DAEMON_USER}:" "$LOGDIR"
			su "$DAEMON_USER" -c "\"$DAEMON\" $DAEMON_STARTOPTIONS >/dev/null 2>&1"
			declare -i timeout=3
			while [ $timeout -gt 0 ]; do
				if [ -s "$PIDFILE" ]; then
					pid=`cat "$PIDFILE"`
					grep -q "$DAEMON_PROGRAM" "/proc/$pid/cmdline" \
					&& break
				fi
				((timeout--))
				echo -n ". "
				sleep 1
			done
			[ $timeout -gt 0 ] \
			&& echo "$NAME." \
			|| echo "FAILED."
		else
			echo "UNCONFIGURED."
		fi
	else
		echo "already running."
	fi
	;;
  stop)
	echo -n "Stopping $DESC: "
	if [ \( -n "$FTSS_USERNAME" -a -n "$FTSS_PASSWORD" \) -o "$DAEMON_STOPOPTIONS" != "stop" ]; then
		su "$DAEMON_USER" -c "$DAEMON" $DAEMON_STOPOPTIONS 2>&1 >/dev/null
		sleep 1
		[ -r "$PIDFILE" ] && echo "FAILED." || echo "$NAME."
	else
		echo "UNCONFIGURED."
	fi
	;;
  #reload)
	#
	#	If the daemon can reload its config files on the fly
	#	for example by sending it SIGHUP, do it here.
	#
	#	If the daemon responds to changes in its config file
	#	directly anyway, make this a do-nothing entry.
	#
	# echo "Reloading $DESC configuration files."
	# start-stop-daemon --stop --signal 1 --quiet --pidfile \
	#	/var/run/$NAME.pid --exec $DAEMON
  #;;
  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: "
	if [ \( -n "$FTSS_USERNAME" -a -n "$FTSS_PASSWORD" \) -o "$DAEMON_RESTARTOPTIONS" != "restart" ]; then
		su "$DAEMON_USER" -c "$DAEMON" $DAEMON_RESTARTOPTIONS 2>&1 >/dev/null
		[ -r "$PIDFILE" ] && echo "$NAME." || echo "FAILED."
	else
		echo "UNCONFIGURED."
	fi
	;;
  *)
	N=/etc/init.d/$NAME
	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
