#!/bin/bash
suffix="-material"
jar_version="24.10.0-SNAPSHOT"

export deploy_path=/opt/webapps/bonus-material
export  app_workspace=/opt/builds/releases/Bonus-Cloud/${jar_version}
export  biz_workspace=/opt/install/jenkins_home/workspace/Bonus-Cloud-Material

app_source_jars=(
  "bonus-auth-${jar_version}.jar"
  "bonus-gateway-${jar_version}.jar"
  "bonus-system-${jar_version}.jar"
  "bonus-job-${jar_version}.jar"
  "bonus-file-${jar_version}.jar"
  "bonus-visual-monitor-${jar_version}.jar"
)

#for source_jar in "${app_source_jars[@]}"; do
#  cp -f ${app_workspace}/${source_jar} $deploy_path
#  echo "copied ${app_workspace}/${source_jar} to $deploy_path"
#done
for source_jar in "${app_source_jars[@]}"; do
  # 获取文件名（不带目录路径）
  filename=$(basename "$source_jar")
  echo "filename:$filename"
  # 获取文件名（不带扩展名）
  base_name="${filename%.jar}"
  echo "filename:$base_name"
  # 构造新的文件名
  new_filename="${base_name}${suffix}.jar"
  echo "filename:$new_filename"

  cp -f ${app_workspace}/${source_jar} "$deploy_path/$new_filename"
  echo "copied ${app_workspace}/${source_jar} to '$deploy_path/$new_filename'"
done

cp -f ${biz_workspace}/"bonus-modules/bonus-material/target/bonus-material.jar" $deploy_path
echo "copied ${app_workspace}/${source_jar} to $deploy_path"

# Define an array of JAR files to run
jars=("bonus-auth-${jar_version}-material.jar --spring.config.location=file:auth_bootstrap.yml"
"bonus-gateway-${jar_version}-material.jar --spring.config.location=file:gateway_bootstrap.yml"
"bonus-system-${jar_version}-material.jar --spring.config.location=file:system_bootstrap.yml"
"bonus-job-${jar_version}-material.jar --spring.config.location=file:job_bootstrap.yml"
"bonus-file-${jar_version}-material.jar --spring.config.location=file:file_bootstrap.yml"
"bonus-visual-monitor-${jar_version}-material.jar --spring.config.location=file:visual_bootstrap.yml"
"bonus-material.jar --spring.config.location=file:material_bootstrap.yml")

# 遍历数组并检查每个JAR文件的进程
for jar_with_args in "${jars[@]}"; do
    # 提取JAR文件名（不包括参数）
    jar=$(echo $jar_with_args | awk '{print $1}')

    # 检查进程是否启动
    echo "原应用程序1 $jar "
    pids=$(pgrep -f $jar || true)
    echo "原应用程序2 $jar "
    if [ -n "$pids" ]; then
        echo "$jar is running with PID(s): $pids"
        # 杀死进程
        for pid in $pids; do
            kill -9 $pid
            if [ $? -eq 0 ]; then
                echo "Process $pid for $jar killed successfully"
            else
                echo "Failed to kill process $pid for $jar"
            fi
        done
    else
        echo "$jar is not running"
    fi
done

cd $deploy_path || { echo "Failed to change directory to $deploy_path"; exit 1; }
# Iterate over the JAR files array
for jar in "${jars[@]}"; do
    echo "Starting $jar"
    nohup /usr/local/jdk1.8.0/bin/java -jar $jar >/dev/null 2>&1 &
done

echo "All JARs have been run successfully."

