#! /bin/sh
#
### BEGIN INIT INFO
# Provides:          zarafa-licensed
# Required-Start:    $syslog $network $remote_fs
# Required-Stop:     $syslog $network $remote_fs
# X-Start-Before:    zarafa-server
# Should-Stop:       zarafa-server
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: The Zarafa Collaboration Platform's License Daemon
# Description:       This package adds a licensing daemon to the Zarafa Collaboration
#                    Platform. This daemon is needed to run propietary add-ons, like the
#                    Microsoft Outlook client.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
LICENSED=/usr/bin/zarafa-licensed
DESC="Zarafa licensed"
NAME=`basename $LICENSED`
#QUIETDAEMON=--quiet
PIDFILE=/var/run/zarafa-licensed.pid

test -x $LICENSED || exit 0

# Include zarafa defaults if available
if [ -f /etc/default/zarafa ] ; then
	. /etc/default/zarafa
fi
if [ -z "$ZARAFA_LOCALE" ]; then
	ZARAFA_LOCALE="C"
fi

if [ -e "$LICENSED_CONFIG" ]; then
	LICENSED_OPTS="$LICENSED_OPTS -c $LICENSED_CONFIG"
fi

#set -e

. /lib/lsb/init-functions

case "$1" in
  start)
	if [ "$LICENSED_ENABLED" = "no" ]; then
		log_warning_msg "Zarafa Licensed daemon not enabled in /etc/default/zarafa ... not starting"
		exit 0
	fi
	log_begin_msg "Starting $DESC: $NAME"
	export LC_ALL=$ZARAFA_LOCALE
	export LANG=$ZARAFA_LOCALE
	start-stop-daemon --start $QUIETDAEMON --pidfile $PIDFILE --exec $LICENSED -- $LICENSED_OPTS
	log_end_msg $?
	unset LC_ALL LANG
	;;
  stop)
	log_begin_msg "Stopping $DESC: $NAME"
	start-stop-daemon --stop $QUIETDAEMON --pidfile $PIDFILE --retry TERM/15/KILL --exec $LICENSED
	RETVAL=$?
	rm -f $PIDFILE
	log_end_msg $RETVAL
	;;
  restart)
	$0 stop
	$0 start
	;;
  status)
	status_of_proc "$LICENSED" "$NAME" && exit 0 || exit $?
	;;
  reload|force-reload)
	log_begin_msg "Reloading $DESC: $NAME"
	start-stop-daemon --stop $QUIETDAEMON --signal HUP --pidfile $PIDFILE --exec $LICENSED
	log_end_msg $?
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|restart|reload|force-reload|status}" >&2
	exit 1
	;;
esac

exit 0
