#!/bin/sh
##############################################################################
# This file is mananged by puppet.  Do NOT edit on the server, your changes  #
# will be blown away on the next puppet run.                                 #
##############################################################################

ulimit -n <%= @haproxy_maxconn %>

### BEGIN INIT INFO
# Provides:          haproxy_<%= @svc_name %>
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts haproxy_<%= @svc_name %>
# Description:       starts haproxy_<%= @svc_name %> using start-stop-daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/haproxy/sbin
DAEMON=/usr/local/sbin/haproxy
DAEMON_CONF=/etc/haproxy/<%= @conf_name %>.conf
DAEMON_OPTS="-f $DAEMON_CONF"
NAME=haproxy_<%= @svc_name %>
DESC=haproxy_<%= @svc_name %>
PID_FILE=/var/run/<%= @pid_name %>.pid

test -x $DAEMON || exit 0

# Include haproxy defaults if available
if [ -f /etc/default/haproxy_<%= @svc_name %> ] ; then
	. /etc/default/haproxy_<%= @svc_name %>
fi

set -e

case "$1" in
  start)
	echo -n "Starting $DESC: "
	start-stop-daemon --start --quiet --pidfile $PID_FILE \
		--exec $DAEMON -- $DAEMON_OPTS
	echo "$NAME."
	;;
  stop)
	echo -n "Stopping $DESC: "
	#start-stop-daemon --retry=TERM/30/KILL/5 --stop --quiet --pidfile $PID_FILE \
	#	--exec $DAEMON -- $DAEMON_OPTS
        if [ ! -f $PID_FILE ] ; then
                # This is a success according to LSB
                return 0
        fi
        for pid in $(cat $PID_FILE) ; do
                /bin/kill $pid || return 4
        done
        rm -f $PIDFILE
	echo "$NAME."

	;;
  restart)
      echo -n "Reloading $DESC configuration: "
          $DAEMON $DAEMON_OPTS -sf $(cat $PID_FILE) > /dev/null 2>&1
      echo "$NAME."
      ;;
  killold)
      echo -n "Killing old haproxy instances: "
      KILLLIST=`ps -ef | grep $DAEMON_CONF | awk '$(NF-1) ~ /-sf/ {print $NF}' `

      for i in $KILLLIST
      do
        ps $i | grep -q $DAEMON_CONF && kill -TERM $i
      done
      echo "$NAME."
      ;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|restart|killold}" >&2
	exit 1
	;;
esac

exit 0
