#!/bin/bash
#
# /etc/rc.d/init.d/consul-template
#
# Daemonize the consul-template agent.
#
# chkconfig: 2345 95 95
# description: Generic template rendering and notifications with Consul
# processname: consul-template
# pidfile: /var/run/consul-template/pidfile

# Source function library.
. /etc/init.d/functions
NAME=consul-template
CONSUL_TEMPLATE=/usr/local/bin/consul-template
CONFIG=/etc/$NAME/conf.d
PID_FILE=/var/run/$NAME/pidfile
LOG_FILE=/var/log/$NAME

[ -e /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME
export CONSUL_TEMPLATE_LOG=${CONSUL_TEMPLATE_LOG:-info}
export GOMAXPROCS=${GOMAXPROCS:-2}

mkdir -p /var/run/$NAME

start() {
   echo -n "Starting $NAME: "
   daemon --pidfile="$PID_FILE" \
      "$CONSUL_TEMPLATE" -config "$CONFIG" >> "$LOG_FILE" 2>&1 &
   echo $! > "$PID_FILE"
   retcode=$?
   touch /var/lock/subsys/$NAME
   return $retcode
}

stop() {
   echo -n "Shutting down $NAME: "
   killproc -p $PID_FILE $CONSUL_TEMPLATE
   retcode=$?
   rm -f /var/lock/subsys/$NAME
   return $retcode
}

case "$1" in
   start)
      if $(status -p "$PID_FILE" $NAME >/dev/null); then
         echo "$NAME already running"
      else
         start
      fi
   ;;
   stop)
      if $(status -p "$PID_FILE" $NAME >/dev/null); then
         stop
      else
         echo "$NAME not running"
      fi
   ;;
   status)
      status -p "$PID_FILE" $NAME
      exit $?
   ;;
   restart)
      if $(status -p "$PID_FILE" $NAME >/dev/null); then
         stop
      fi
      start
   ;;
   reload)
      if $(status -p "$PID_FILE" $NAME >/dev/null); then
         kill -HUP `cat $PID_FILE`
      else
         echo "$NAME not running"
      fi
   ;;
   condrestart)
      if [ -f /var/lock/subsys/$NAME ]; then
         if $(status -p "$PID_FILE" $NAME >/dev/null); then
            stop
         fi
         start
      fi
   ;;
   *)
      echo "Usage: $NAME {start|stop|status|reload|restart}"
      exit 1
   ;;
esac
exit $?
