#!/bin/bash

# 设置错误时遇到错误继续执行（因为并行脚本可能有失败）
# set -e

# 输出当前时间
echo "=========================================="
echo "开始执行时间: $(date)"
echo "=========================================="

# 检查 Python 环境
PYTHON_CMD="/www/server/panel/pyenv/bin/python"
if [ ! -f "$PYTHON_CMD" ]; then
    echo "错误: Python 环境不存在: $PYTHON_CMD"
    exit 1
fi
echo "使用 Python 环境: $PYTHON_CMD"

# 检查脚本目录是否存在
SCRIPT_DIR="/www/wwwroot/file.jsfsdata.com/py"
if [ ! -d "$SCRIPT_DIR" ]; then
    echo "错误: 脚本目录不存在: $SCRIPT_DIR"
    exit 1
fi
echo "脚本目录: $SCRIPT_DIR"

# 切换到脚本目录
cd "$SCRIPT_DIR" || exit 1

# 定义要运行的脚本列表
SCRIPTS=(
    "jt_mc.py"
    "lw_mc.py"
    "jm_mc.py"
    "rj_mc.py"
    "tks_mc.py"
    "jt_mr.py"
    "lw_mr.py"
    "tks_mr.py"
    "jm_mr.py"
    "rj_mr.py"
)

# 记录已启动的进程 ID
pids=()
failed_scripts=()

# 启动所有脚本
echo ""
echo "=========================================="
echo "开始并行执行脚本..."
echo "=========================================="
for script in "${SCRIPTS[@]}"; do
    SCRIPT_PATH="$SCRIPT_DIR/$script"
    if [ -f "$SCRIPT_PATH" ]; then
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] 启动脚本: $script"
        $PYTHON_CMD "$SCRIPT_PATH" > "${script%.py}.log" 2>&1 &
        pids+=($!)
    else
        echo "警告: 脚本不存在: $script"
        failed_scripts+=("$script (文件不存在)")
    fi
done

# 等待所有进程完成
echo ""
echo "等待所有脚本完成..."
success_count=0
fail_count=0

index=0
for script in "${SCRIPTS[@]}"; do
    if [ -f "$SCRIPT_DIR/$script" ]; then
        pid=${pids[$index]}
        wait $pid
        status=$?

        if [ $status -eq 0 ]; then
            echo "✓ $script 执行成功"
            ((success_count++))
        else
            echo "✗ $script 执行失败 (退出状态码: $status)"
            failed_scripts+=("$script (状态码: $status)")
            ((fail_count++))
        fi
        ((index++))
    fi
done

echo ""
echo "=========================================="
echo "并行脚本执行完成"
echo "成功: $success_count, 失败: $fail_count"
echo "=========================================="

# 运行所有并行脚本完成后，运行 jsfsauto.py
echo ""
echo "=========================================="
echo "开始运行 jsfsauto.py..."
echo "=========================================="
$PYTHON_CMD "$SCRIPT_DIR/jsfsauto.py"
status=$?

if [ $status -eq 0 ]; then
    echo "✓ jsfsauto.py 执行成功"
else
    echo "✗ jsfsauto.py 执行失败 (退出状态码: $status)"
    failed_scripts+=("jsfsauto.py (状态码: $status)")
fi

# 输出最终结果
echo ""
echo "=========================================="
echo "完成执行时间: $(date)"
echo "=========================================="

if [ ${#failed_scripts[@]} -gt 0 ]; then
    echo ""
    echo "失败的脚本列表:"
    for failed in "${failed_scripts[@]}"; do
        echo "  - $failed"
    done
    echo ""
    exit 1
else
    echo ""
    echo "所有脚本执行成功！"
    echo ""
fi

exit 0
