#!/bin/sh
# Start/stop/restart apache-tomcat.
# $Id: rc.apache-tomcat,v 1.2.0 2013/11/30
# Authors: Heinz Wiesinger <pprkut@liwjatan.at>, Vincent Batts <vbatts@hashbangbash.com>
# ---------------------------------------------------------------------------

# Load tomcat specific java vm options
. /etc/tomcat/tomcat-java.conf

# Load environment variables
. /etc/profile.d/apache-tomcat.sh
if [ -e "/etc/profile.d/openjdk.sh" ]; then
  . /etc/profile.d/openjdk.sh
else
  . /etc/profile.d/jdk.sh
fi

PIDFILE="/var/spool/tomcat/tomcat.pid"
LOGFILE="/var/log/tomcat/tomcat.log"

CLASSPATH="$CATALINA_BASE/bin/bootstrap.jar:$CATALINA_BASE/bin/tomcat-juli.jar"
CLASSPATH="$CLASSPATH:/usr/share/java/commons-daemon.jar"
for i in $CATALINA_LIBDIR/*.jar; do
  CLASSPATH=$CLASSPATH:$i
done

USER="tomcat"

JSVC="/usr/bin/jsvc"
TOMCAT_CMD="-user $USER -cp $CLASSPATH \
  -pidfile $PIDFILE -outfile $LOGFILE -errfile $LOGFILE \
  -Xms$MEMALLOC_MIN -Xmx$MEMALLOC_MAX -Xss$STACK -XX:MaxPermSize=$MAXPERMSIZE \
  -Djava.io.tmpdir="$CATALINA_TMPDIR" \
  -Dcatalina.home=$CATALINA_HOME -Dcatalina.base=$CATALINA_BASE \
  -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
  -Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \
  -Djava.awt.headless=true org.apache.catalina.startup.Bootstrap"

tomcat_start() {
  echo -n "Starting Apache Tomcat ... "
  if [ -e "$PIDFILE" ]; then
    echo "already running!"
  else
    unset DISPLAY
    cd /var/lib/tomcat
      $JSVC $TOMCAT_CMD
    echo "done!"
  fi
}

tomcat_stop() {
  echo -n "Stopping Apache Tomcat ... "
  if [ -e "$PIDFILE" ]; then
    cd /var/lib/tomcat
      $JSVC -stop $TOMCAT_CMD
    echo "done!"
  else
    echo "not running!"
  fi
}

# Restart tomcat:
tomcat_restart() {
  tomcat_stop
  sleep 1
  tomcat_start
}

case "$1" in
'start')
  tomcat_start
  ;;
'stop')
  tomcat_stop
  ;;
'restart')
  tomcat_restart
  ;;
*)
  echo "usage $0 start|stop|restart"
esac