#!/bin/sh

# Variables
# ---------
# DO NOT MODIFY THIS FILE (package updates would overwrite your changes)
# Instead set variables via a script YAMCS_HOME/bin/setenv.sh
#
# JMX           Set to 1 to allow remote JMX connections (jconsole).
#
# JAVA_OPTS     Java runtime options
#
# CLASSPATH     Custom classpath additions

# resolve links - $0 may be a softlink
PRG="$0"

while [ -h "$PRG" ]; do
  ls=`ls -ld "$PRG"`
  link=`expr "$ls" : '.*-> \(.*\)$'`
  if expr "$link" : '/.*' > /dev/null; then
    PRG="$link"
  else
    PRG=`dirname "$PRG"`/"$link"
  fi
done

# Get standard environment variables
PRGDIR=`dirname "$PRG"`
YAMCS_HOME=`cd "$PRGDIR/.." ; pwd`

# cd into YAMCS_HOME to support relative links in configuration files
cd "$YAMCS_HOME"

# Remove user classpath, but allow custom classpath additions via setenv.sh
CLASSPATH=
LIBPATH=

if [ -r bin/setenv.sh ]; then
  . bin/setenv.sh
fi

if [ "x$CLASSPATH" != x ]; then
  CLASSPATH="$CLASSPATH:"
fi
if [ "x$LIBPATH" != x ]; then
  LIBPATH="$LIBPATH:"
fi

export CLASSPATH="$CLASSPATH$YAMCS_HOME/lib/*:$YAMCS_HOME/lib/ext/*"
LIBPATH="$LIBPATH$YAMCS_HOME/lib:$YAMCS_HOME/lib/ext"

if [ -d "$JAVA_HOME" ]; then
  _RUNJAVA="$JAVA_HOME/bin/java"
else
  _RUNJAVA=java
fi

if [ "$JMX" = 1 ]; then
  JMX_OPTS="-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
fi

exec "$_RUNJAVA" $JAVA_OPTS $JMX_OPTS -Djava.util.logging.manager=org.yamcs.logging.YamcsLogManager -Djava.library.path=$LIBPATH -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/ org.yamcs.YamcsServer "$@"
