#!/usr/bin/env bash

# source $HOME/.bash_profile
# export JAVA_HOME=$APP_HOME/jdk1.8.0
# export PATH=$JAVA_HOME/bin:$PATH

SOURCE="$0"
# resolve $SOURCE until the file is no longer a symlink
while [ -h "$SOURCE"  ]; do 
    DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd  )"
    SOURCE="$(readlink "$SOURCE")"
    # if $SOURCE was a relative symlink, we need to resolve it relative to 
    # the path where the symlink file was located
    [[ $SOURCE != /*  ]] && SOURCE="$DIR/$SOURCE"
done
DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd  )"

# echo DIR : $DIR

cd $DIR/.. || exit 1

SPRING_BOOT_APP_HOME=$(pwd)
SPRING_BOOT_APP_NAME=$(basename "$0")

export CONF_FOLDER=${SPRING_BOOT_APP_HOME}/conf
export LOG_FOLDER=${SPRING_BOOT_APP_HOME}/logs
export PID_FOLDER=${LOG_FOLDER}

[[ -n "${PROCESS_NUM}" ]] && temp_process_num=${PROCESS_NUM}

[[ -f "${CONF_FOLDER}/${SPRING_BOOT_APP_NAME}.conf" ]] && source ${CONF_FOLDER}/${SPRING_BOOT_APP_NAME}.conf

[[ -n "${temp_process_num}" ]] && PROCESS_NUM=${temp_process_num}

echo Total Process Num of [${SPRING_BOOT_APP_NAME}] : ${PROCESS_NUM}

for (( i=0; i<${PROCESS_NUM}; i=i+1 )); do
    port=$(($i + ${START_PORT}))
    
    export APP_NAME="${SPRING_BOOT_APP_NAME}-${port}"
    # export JAVA_OPTS="-Dserver.port=${port}"

    echo [$((i+1)) of $PROCESS_NUM] : $APP_NAME $1
    bin/${SPRING_BOOT_APP_NAME}.war $@ --server.port=${port} ${SPRING_BOOT_OPTS}
done
