#! /bin/sh
### BEGIN INIT INFO
# Provides:          repro
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: repro SIP Server
# Description:       repro SIP proxy server from the reSIProcate suite
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=repro
BIN=repro
DESC="SIP proxy"
DAEMON=/usr/sbin/$BIN
USER=repro
GROUP=repro
PIDFILE="/var/run/$BIN/$NAME.pid"
PIDFILE_DIR=`dirname $PIDFILE`
LOG_DIR=/var/log/repro

KILL_SPEC=TERM/20/KILL/5

. /lib/lsb/init-functions

test -x $DAEMON || exit 1
umask 022

# Include defaults if available
if [ -f /etc/default/$NAME ] ; then
	. /etc/default/$NAME
fi

DAEMON_OPTS="/etc/repro/${NAME}.config --Daemonize=true --PidFile=${PIDFILE}"

if [ ! -d "$PIDFILE_DIR" ];then
	log_daemon_message "$NAME creating directory for PID file: $PIDFILE_DIR"
	mkdir -p "$PIDFILE_DIR"
	chown $USER:$GROUP "$PIDFILE_DIR"
fi

if [ ! -d "$LOG_DIR" ];then
	log_daemon_message "$NAME creating directory for logs: $LOG_DIR"
	mkdir -p "$LOG_DIR"
	chown $USER:$GROUP "$LOG_DIR"
fi

set -e

case "$1" in
  start)
	log_daemon_msg "Starting $DESC ($NAME)" $BIN
	if start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS ;
	then
		log_end_msg 0
	else
		log_end_msg 1
	fi
	;;
  stop)
	log_daemon_msg "Stopping $DESC ($NAME)" $BIN
	if start-stop-daemon --stop --quiet --oknodo --user $USER --pidfile $PIDFILE --retry=${KILL_SPEC} --exec $DAEMON ;
	then
		log_end_msg 0
	else
		log_end_msg 1
	fi
	;;
  status)
	if [ -e $PIDFILE ];
	then
		status_of_proc -p $PIDFILE $DAEMON "$NAME process" && exit 0 || exit $?
		log_daemon_msg "$NAME Process is not running"
		log_end_msg 0
	fi
	;;
  reload|force-reload)
	log_daemon_msg "Reloading $DESC ($NAME)" $BIN
	if [ -f "$PIDFILE" ] ; then
		start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE || rc=$?
	else
		log_failure_msg "$NAME can't find PID file $PIDFILE"
	fi
	;;
  restart)
	$0 stop && sleep 2 && $0 start
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|status|restart|reload|force-reload}" >&2
	exit 2
	;;
esac

exit 0
