#!/bin/bash
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
. $CWD/util/calc-python-path

RUN_IN_BACKGROUND=1
export OPSC_GC_LOG_PATH="log"

while true; do
    case "$1" in
        -f)
            export OPSCENTERD_LOG_STDOUT=1
            RUN_IN_BACKGROUND=0
            shift
        ;;
        --)
            shift
            break
        ;;
        *)
            echo "Invalid argument." >&2
            exit 1
        ;;
    esac
done

JAVA="${JAVA:-$(./bin/find-java)}"
if [ "x$JAVA" == "x" ]; then
    echo "Could not locate java process. Please put java on your path or set JAVA_HOME to /path/to/your/jvm"
    exit 1
fi

if [ "x$OPSC_IS_PACKAGE" != "x" ]; then
    export OPSC_GC_LOG_PATH="/var/log/opscenter"
fi

TWISTD="./bin/twistd"
REACTOR="-r select"
OPSC_JVM_OPTS="-server -Xmx1024m -Xms1024m -XX:MaxPermSize=128m -Dpython.cachedir.skip=false
                -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled
                -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark -verbose:gc -XX:+PrintGCDateStamps
                -XX:+PrintGCDetails -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime
                -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=1M -Xloggc:$OPSC_GC_LOG_PATH/gc.log
                $OPSC_JVM_OPTS"
JYTHON_CLASS="org.python.util.jython"
LAUNCH_TWISTD="$TWISTD $REACTOR $TWISTD_EXTRA -noy bin/start_opscenter.py"
LAUNCH_OPSC_COMMAND="$JAVA $OPSC_JVM_OPTS -cp $CLASSPATH $JYTHON_CLASS $LAUNCH_TWISTD"

if [ "x$OPSC_IS_PACKAGE" != "x" ]; then
    exec $LAUNCH_OPSC_COMMAND > /dev/null 2>&1
elif [ $RUN_IN_BACKGROUND = 1 ]; then
    exec $LAUNCH_OPSC_COMMAND > /dev/null 2>&1 &
else
    exec $LAUNCH_OPSC_COMMAND
fi
