#!/bin/bash

set -e
# set -x

scriptPath=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)

# 加载配置文件
if [ -f "$scriptPath/config.sh" ]; then
    source "$scriptPath/config.sh"
else
    echo "❌ 无法找到配置文件: $scriptPath/config.sh"
    exit 1
fi

# 检查是否为合法模式
MODE=$1
case "$MODE" in
download | generate) ;;
*)
    echo "❌ 模式错误: MODE 必须是 'download' 或 'generate'"
    exit 1
    ;;
esac

# 守护进行执行周期（秒）
INTERVAL="${2:-60}"
LOG_FILE="$scriptPath/checksum.log"

# 正常循环执行
echo "🔁 开始守护循环执行（间隔 $INTERVAL 秒），按 Ctrl+C 停止..."
echo "⚠️ 当前日志路径: ${LOG_FILE}"

start_time=$(date +"%Y-%m-%d %T")

while true; do
    current_time=$(date +"%Y-%m-%d %T")
    echo "🕘 [$current_time] 开始新一轮执行..." >"$LOG_FILE"

    cd "$scriptPath"

    if [[ "$MODE" == "download" ]]; then
        echo "📥 正在执行下载任务..." >>"$LOG_FILE"
        ./download_checksum.sh >>"$LOG_FILE" 2>&1
    elif [[ "$MODE" == "generate" ]]; then
        echo "📦 正在执行生成任务..." >>"$LOG_FILE"
        ./generate_checksum.sh >>"$LOG_FILE" 2>&1
    fi

    echo "✅ 本次任务结束。" >>"$LOG_FILE"
    echo "💤 等待 $INTERVAL 秒..." >>"$LOG_FILE"
    sleep "$INTERVAL"
done
