#!/bin/bash

set -e # exit immediately if a simple command exits with a non-zero status
set -u # report the usage of uninitialized variables

# Setup env vars and folders for the webapp_ctl script
source /var/vcap/jobs/riemann/helpers/ctl_setup.sh 'riemann'

export PORT=${PORT:-5000}
export LANG=en_US.UTF-8

JAVA_OPTS="-server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseCompressedOops -XX:+CMSClassUnloadingEnabled"
<% if_p("riemann.java.xms") do %>JAVA_OPTS="$JAVA_OPTS -Xms<%= p("riemann.java.xms") %>"<% end %>
<% if_p("riemann.java.xmx") do %>JAVA_OPTS="$JAVA_OPTS -Xmx<%= p("riemann.java.xmx") %>"<% end %>

# https://github.com/riemann/riemann/blob/0.2.10/src/riemann/transport/tcp.clj#L79-L85
JAVA_OPTS="$JAVA_OPTS -Dnetty.epoll.enabled=<%= p("riemann.java.enable_netty_epoll") %>"

case $1 in
  start)
    pid_guard $PIDFILE $JOB_NAME

    # increasing the open files limits
    ulimit -n 64000
    <% if_p("riemann.override_hostname") do %>export HOSTNAME=<%= p("riemann.override_hostname") %><% end %>

    exec chpst -u vcap:vcap java $JAVA_OPTS \
      -jar /var/vcap/packages/riemann/lib/riemann.jar start \
      $JOB_DIR/config/riemann.config \
      1>> $LOG_DIR/$JOB_NAME.stdout.log \
      2>> $LOG_DIR/$JOB_NAME.stderr.log &

    # store pid in $PIDFILE
    echo $! > $PIDFILE
    ;;

  stop)
    kill_and_wait $PIDFILE
    ;;

  *)
    echo "Usage: riemann_ctl {start|stop}"
    ;;
esac
exit 0
