#!/bin/bash

NAME="eltex-portal-constructor"
DB_UTILS="/usr/lib/$NAME/db_utils.sh"

TMP_DIR="/tmp/embedded-jetty-epadmin"
MAIN_CONFIG="/etc/$NAME/application.conf"
LOG4J_CONFIG="/etc/$NAME/log4j2.xml"

JAVA=/usr/bin/java
JAVA_INIT_HEAP=16m
JAVA_MAX_HEAP=128m
JAVA_OPTS=
DEBUG_PORT=

if [[ -e "/etc/default/$NAME" ]]; then
    source "/etc/default/$NAME"
fi

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Djava.io.tmpdir=$TMP_DIR"
JAVA_ARGS="--config.files=$MAIN_CONFIG --logging.config=$LOG4J_CONFIG"

# JVM debug options
DEBUG_OPT=$([[ ${DEBUG_PORT} -gt 0 ]] && echo "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=${DEBUG_PORT}")

WAR="/usr/share/$NAME/epadmin-starter.war"
RUN_ARGS="$JAVA_OPTS $DEBUG_OPT -Xms$JAVA_INIT_HEAP -Xmx$JAVA_MAX_HEAP -jar $WAR $JAVA_ARGS"


cmd=$1
shift
case ${cmd} in
    run)
        if ! ${DB_UTILS} check_db_user $@ ; then
            echo "Service $NAME failed to start"
            exit $?
        fi
        mkdir -p ${TMP_DIR}
        exec ${JAVA} ${RUN_ARGS}
    ;;
    remove-db)
        if service ${NAME} status &> /dev/null ; then
            echo "Stop $NAME service before removing database"
            exit 1
        fi
        ${DB_UTILS} remove_db $@
    ;;
    create-db-user)
        ${DB_UTILS} create_db_user $@
    ;;
esac
