#!/bin/bash
# -*- mode: sh; c-basic-offset: 4; tab-width: 8; indent-tabs-mode: nil -*-
# vi: set shiftwidth=4 tabstop=8 softtabstop=4 expandtab:
# :indentSize=4:tabSize=8:noTabs=true:
# vim: filetype=sh

# ---- error handling
set -o errexit;
set -o posix;
set -o pipefail;
set -o errtrace;
unexpected_error() {
    local errstat=$?
    echo "${g_prog:-$(basename "$0")}: Error! Encountered unexpected error at 'line $(caller)', bailing out..." 1>&2
    exit $errstat;
}
trap unexpected_error ERR;

# Force the path to only what we need, saving off the original path
PATH_ORIG=$PATH;
PATH=/usr/bin:/bin

g_prog=$(basename "$0");
g_progdir=$(dirname "$0");
g_progdir_abs=$(dirname "$(readlink -f "$0")");

# ---- global env

. "$g_progdir_abs/../../private/runtime-common/lib/globalenv.ish"

# ---- error functions
merror() {
    echo "$g_prog: Error! ""$@" 1>&2;
    exit 1;
}
minterror() {
    echo "$g_prog: Internal Error! ""$@" 1>&2;
    exit 1;
}
mwarn() {
    echo "$g_prog: Warning! ""$@" 1>&2;}


# ---- globals

g_rootdir="$g_progdir/../.."
g_rootdir_abs="$g_progdir_abs/../.."

g_piddir="$g_rootdir_abs/rwdir/run"
g_smrtlink_gui_pidfile="$g_piddir/smrtlink_gui.pid"

g_javahome="$g_rootdir_abs/bundles/smrtlink-analysisservices-gui/current/private/thirdparty/java/jre/jre_8u192b12-hotspot"
g_python3_bindir="$g_rootdir_abs/bundles/smrttools/current/private/thirdparty/python3/python3_3.7.3/binwrap"
g_slagroot="$g_rootdir/bundles/smrtlink-analysisservices-gui/current/private/pacbio/smrtlink-analysisservices-gui"

# ---- subroutines

# ---- main

echo "Stopping Services..."

allstopped=true;
stat=0;
PATH="$g_javahome/bin:$g_python3_bindir:$PATH" \
CATALINA_PID="$g_smrtlink_gui_pidfile" \
JAVA_HOME="$g_javahome" JAVA_OPTS="-Djava.library.path=" \
    "$g_slagroot/bin/restart-tomcat" || stat=$?
if [[ $stat -ne 0 ]]; then
    mwarn "Failed to restart Tomcat"
    exit $stat
else
    echo "Tomcat restarted with current UI bundle."
fi
