#!/bin/sh

### BEGIN INIT INFO
# Provides:          pontual-agent
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start pontual-agent at boot time
# Description:       Controls the pontual-agent
### END INIT INFO

set -e

. /lib/lsb/init-functions

PATH=/bin:/usr/bin:/sbin:/usr/sbin
NAME=pontual-agent
DESC="PontualAgent" 
DEFAULT=/etc/default/$NAME
APP_HOME="/opt/$NAME"

PIDFILE="$APP_HOME/pidfile"
ARGS="-pidfile $PIDFILE -outfile $APP_HOME/logs/stdout.log -errfile $APP_HOME/logs/errout.log"
ARGS="$ARGS -Dpontual.agent.environment=production -Dpontual.agent.home=$APP_HOME -Dpontual.agent.api.url=https://e-gov.betha.com.br/pontual-ponto"
ARGS="$ARGS -Dpontual.agent.proxy.url= -Djava.io.tmpdir=$APP_HOME/temp -Djava.awt.headless=true -Xmx256M"
ARGS="$ARGS -cp $APP_HOME/lib/$NAME-bootstrap.jar com.betha.pontual.agent.bootstrap.Main"

if [ `id -u` -ne 0 ]; then
	echo "You need root privileges to run this script"
	exit 1
fi

if [ ! -f "$APP_HOME/lib/$NAME-bootstrap.jar" ]; then
	log_failure_msg "$NAME is not installed"
	exit 1
fi


find_jdks()
{
    for java_version in 9 8 7
    do
        for jvmdir in /usr/lib/jvm/java-${java_version}-openjdk-* \
                      /usr/lib/jvm/jdk-${java_version}-oracle-* \
                      /usr/lib/jvm/jre-${java_version}-oracle-*
        do
            if [ -d "$jvmdir" ]
            then
                JDK_DIRS="$JDK_DIRS $jvmdir"
            fi
        done
    done

    # Add older non multi arch installations
    JDK_DIRS="${JDK_DIRS} /usr/lib/jvm/java-7-oracle"
}

# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not
# defined in $DEFAULT)
JDK_DIRS="/usr/lib/jvm/default-java"
find_jdks

# Look for the right JVM to use
for jdir in $JDK_DIRS; do
    if [ -r "$jdir/bin/java" -a -z "$JAVA_HOME" ]; then
	JAVA_HOME="$jdir"
    fi
done
export JAVA_HOME

# overwrite settings from default file
if [ -f "$DEFAULT" ]; then
	. "$DEFAULT"
fi

log_daemon_msg "Using JAVA_HOME: $JAVA_HOME"

case "$1" in
  start)
	if [ -z "$JAVA_HOME" ]; then
		log_failure_msg "no JDK or JRE found - please set JAVA_HOME"
		exit 1
	fi

	log_daemon_msg "Starting $DESC"
	$APP_HOME/bin/jsvc $ARGS
	;;
  stop)
	log_daemon_msg "Stopping $DESC"
	if [ -f "$PIDFILE" ]; then
		$APP_HOME/bin/jsvc -stop $ARGS
	else
		log_progress_msg "(not running)"
	fi
	;;
  restart)
	if [ -f "$PIDFILE" ]; then
		$0 stop
		sleep 1
	fi
	$0 start
	;;
  *)
	echo "Usage: $NAME {start|stop|restart}" >&2
	exit 1
	;;
esac

exit 0
