#################################################################################
# 渠道 athena 启动脚本
#################################################################################

# 检查脚本参数，如必要参数未传入，退出脚本。
checkInput() {
  if [ "${profile}" == "" ] || [ "${oper}" == "" ]; then
    echo "请输入脚本参数：profile oper [debug]"
    echo "    profile: 运行环境（必填）。可选值：development|test"
    echo "    oper: 运行环境（必填）。可选值：start|stop|restart"
    echo "    debug: debug启动开关。默认不填为不启动。"
    exit 0
  fi
}

#检查文件是否存在，不存在则退出脚本
checkFileExist() {
  if [ ! -f "$1" ]
  then
    echo "关键文件 $1 找不到，脚本执行结束"
    exit 0
  fi
}

# 封装启动参数，调用启动脚本
execBootScript() {
  APP_NAME=javatool-server

  # JVM 参数
  # JAVA_OPTS=" -Ddubbo.resolve.file=${RESOURCES_PATH}/dubbo/dubbo-resolve.properties -Djava.awt.headless=true -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true -Ddubbo.shutdown.hook=true -Dspring.profiles.active=${profile} -Djava.security.egd=file:/dev/./urandom -Xms1024m -Xmx1024m -Xss2m "
  JAVA_OPTS=" -Djava.awt.headless=true -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true -Dspring.profiles.active=${profile} -Xms1024m -Xmx1024m -Xss2m "
  JAVA_DEBUG_OPTS=""
  if [ "$3" == "debug" ]; then
    JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=2235,server=y,suspend=n "
    shift
  fi
  javaArgs=" ${JAVA_OPTS} ${JAVA_DEBUG_OPTS} "

  # classpath 参数
  classpathArgs="${COMPILED_WEBAPP}/WEB-INF/classes:${COMPILED_WEBAPP}/WEB-INF/lib/*"

  # 启动类
  bootstrapClass="io.github.dunwu.javatool.server.TomcatServer"

  ${SCRIPT_PATH}/embed-tomcat-server-boot.sh ${APP_NAME} ${oper} "${javaArgs}" "${classpathArgs}" "${bootstrapClass}"
}

######################################## MAIN ########################################
# 获取输入参数
profile=$1
oper=$2
debug=$3
checkInput

# 设置环境变量
export LANG="zh_CN.UTF-8"
#export JAVA_HOME=/opt/software/java/jdk1.8.0_121
#export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
#export MAVEN_HOME=/opt/software/maven/apache-maven-3.0.5
#export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$MAVEN_HOME/bin:$PATH

# 关键路径
SCRIPT_PATH=/home/zp/source/JavaStack/scripts
COMPILED_WEBAPP=/home/zp/source/JavaStack/codes/javatool/server/target/javatool-server
RESOURCES_PATH=/home/zp/source/JavaStack/codes/javatool/server/src/main/resources
execBootScript
