#!/bin/bash

# --- 配置变量 ---
RESTART_SCRIPT="/usr/local/bin/npc_restart_script.sh"
LOG_FILE="/var/log/npc_restart_debug.log"
CRON_JOB="0 2 * * * $RESTART_SCRIPT"

# 检查是否以 root 身份运行
if [ "$EUID" -ne 0 ]; then
    echo "🚨 此脚本必须使用 sudo 或以 root 用户身份运行。"
    echo "请尝试运行: sudo ./setup_npc_restart.sh"
    exit 1
fi

echo "================================================="
echo "🚀 正在执行 NPC 服务定时重启一键部署脚本..."
echo "================================================="

# --- 任务 1: 创建和配置重启日志脚本 ---
echo "1. 正在创建重启日志脚本: $RESTART_SCRIPT"

# 使用 heredoc 方式创建脚本文件
cat << 'EOF' > "$RESTART_SCRIPT"
#!/bin/bash
# 脚本功能: 重启 npc 服务并记录详细日志

LOG_FILE="/var/log/npc_restart_debug.log"
DATE_TIME=$(date +"%Y-%m-%d %H:%M:%S")

echo "[$DATE_TIME] --- Start of NPC Restart Routine ---" >> $LOG_FILE

# 执行 systemctl restart 命令
/usr/bin/systemctl restart npc >> $LOG_FILE 2>&1
STATUS=$?

# 检查命令执行结果并记录
if [ $STATUS -eq 0 ]; then
    echo "[$DATE_TIME] SUCCESS: npc service restarted successfully. Systemctl exit code: $STATUS" >> $LOG_FILE
else
    echo "[$DATE_TIME] ERROR: Failed to restart npc service. Systemctl exit code: $STATUS" >> $LOG_FILE
    echo "[$DATE_TIME] WARNING: Check system logs (journalctl) for details." >> $LOG_FILE
fi

echo "[$DATE_TIME] --- End of NPC Restart Routine ---" >> $LOG_FILE

exit 0
EOF

# 赋予脚本执行权限
chmod +x "$RESTART_SCRIPT"
echo "✅ 重启日志脚本创建成功并已添加执行权限。"


# --- 任务 2: 安装 Root 用户的 Crontab 任务 ---
echo "2. 正在安装 Root 用户的 Crontab 任务..."

# 检查 Cron 任务是否已经存在，避免重复添加
if sudo crontab -l | grep -q "$RESTART_SCRIPT"; then
    echo "⚠️ Crontab 任务已存在，跳过安装。"
else
    # 将新的 Cron 任务添加到 Root 用户的 Crontab 中
    (sudo crontab -l 2>/dev/null; echo "# NPC service restart every day at 02:00") | sudo crontab -
    (sudo crontab -l 2>/dev/null; echo "$CRON_JOB") | sudo crontab -
    echo "✅ Crontab 任务安装成功。"
    echo "   - 运行时间: 每天的凌晨 2:00"
    echo "   - 执行命令: $CRON_JOB"
fi

echo ""
echo "================================================="
echo "🎉 部署完成！"
echo "日志文件位置: $LOG_FILE"
echo "您可以通过 'sudo crontab -l' 检查任务是否已安装。"
echo "================================================="