#!/bin/bash
# 一次性修复：摘掉老 git 通道的 doUpdate cron。
#
# 病症：设备 crontab 里有
#     59 4 * * *  curl -X POST 'http://localhost/PHP/UpdateSelf.php?op=doUpdate'
#     @reboot ... curl -X POST '.../UpdateSelf.php?op=doUpdate'
# 它每天 04:59（和 @reboot）从**设备本地陈旧 gitCache** 部署后端；而 git fetch 因 deploy key
# 未分发到全网而失败（FETCH_HEAD 0 字节），缓存卡在旧版本；git 通道又没有"绝不降级"保护 →
# 于是把 light-update 刚更好的新版本降级回退（实测 1.9.63 → 1.9.62/1.9.61，每天来回打架）。
#
# 结论：light-update(S3/code.zip 通道)已是后端唯一活着的更新通道，且自带"只升不降"版本门。
# 摘掉 doUpdate cron，终结两条通道打架。crontab 不走 git/S3 部署 → 改了就稳。
#
# 幂等：没有该行就不动；grep -vF 精确匹配整串，不误伤 crontab.sh / light-update 那几行。
set -u

MARK='UpdateSelf.php?op=doUpdate'

strip_for() {  # $1 = 目标用户（空=当前用户）
    local u="$1" cur new
    local args=()
    [ -n "$u" ] && args=(-u "$u")
    cur=$(crontab "${args[@]}" -l 2>/dev/null) || return 0
    printf '%s\n' "$cur" | grep -qF "$MARK" || return 0     # 没有该 cron → 不动
    new=$(printf '%s\n' "$cur" | grep -vF "$MARK")
    printf '%s\n' "$new" | crontab "${args[@]}" - \
        && echo "  已从 ${u:-当前用户} 的 crontab 摘除 doUpdate cron"
}

# doUpdate cron 在 aaden 用户的 crontab。patch 正常由 root 的 auto-upgrade 触发 → 用 -u aaden；
# 兜底再扫一遍当前用户（万一某些设备以 aaden 直接跑 patch），谁有就摘谁。
if [ "$(id -u)" = "0" ]; then
    strip_for aaden
    strip_for ""
else
    strip_for ""
fi

echo "  removeGitDoUpdateCron 完成（light-update 成为后端唯一更新通道）"
