#!/bin/bash
#
# description: dss-server start cmd
#

# get log directory
cd `dirname $0`
cd ..
INSTALL_HOME=`pwd`

# set DSS_HOME
if [ "$DSS_HOME" = "" ]; then
  export DSS_HOME=$INSTALL_HOME
fi

# set DSS_CONF_DIR
if [ "$DSS_CONF_DIR" = "" ]; then
  export DSS_CONF_DIR=$DSS_HOME/conf
fi

SERVER_SUFFIX="dss-server"
## set log
if [ "$DSS_LOG_DIR" = "" ]; then
  export DSS_LOG_DIR="$DSS_HOME/logs"
fi
export SERVER_LOG_PATH=$DSS_LOG_DIR
if [ ! -w "$SERVER_LOG_PATH" ] ; then
  mkdir -p "$SERVER_LOG_PATH"
fi

if test -z "$SERVER_HEAP_SIZE"
then
  export SERVER_HEAP_SIZE="6G"
fi

DEBUG_PORT=
if [ "$DEBUG_PORT" ];
then
   export DEBUG_CMD="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$DEBUG_PORT"
fi

if test -z "$SERVER_JAVA_OPTS"
then
  export SERVER_JAVA_OPTS="-DserviceName=$SERVER_SUFFIX -Xmx$SERVER_HEAP_SIZE -XX:+UseG1GC -Xloggc:$SERVER_LOG_PATH/$SERVER_SUFFIX.gc $DEBUG_CMD"
fi

export SERVER_CLASS=com.webank.wedatasphere.dss.DSSServerApplication

## conf dir
export SERVER_CONF_PATH=$DSS_CONF_DIR:$DSS_CONF_DIR/$SERVER_SUFFIX

## commons lib
export DSS_COMMONS_LIB="$DSS_HOME/lib/dss-commons"


if [ ! -r "$DSS_COMMONS_LIB" ] ; then
    echo "dss commons lib not exists $DSS_COMMONS_LIB"
    exit 1
fi

## server lib
export SERVER_LIB=$DSS_HOME/lib/$SERVER_SUFFIX


if [ ! -r "$SERVER_LIB" ] ; then
    echo "server lib not exists $SERVER_LIB"
    exit 1
fi

export SERVER_PID=$DSS_HOME/pid/${SERVER_SUFFIX}.pid
## set class path
export SERVER_CLASS_PATH=$SERVER_CONF_PATH:$DSS_COMMONS_LIB/*:$SERVER_LIB/*

nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS 2>&1 > $SERVER_LOG_PATH/$SERVER_SUFFIX.out &
pid=$!

sleep 2
if [[ -z "${pid}" ]]; then
    echo "server $SERVER_SUFFIX start failed!"
    exit 1
else
    echo "server $SERVER_SUFFIX start succeeded!"
    echo $pid > $SERVER_PID
    sleep 1
fi
exit 1
