#!/bin/bash
# 和 aaden-cli 其他地方一样用 -S 喂密码：aaden 没有免密 sudo、又没有终端时（被装机脚本或 set-device-id 调用）裸 sudo 会直接失败
sudoS() { echo "Innerken322." | sudo -S -p '' "$@"; }
echo 'Cronjob Before Aaden'
echo "Innerken322." | sudo -S  crontab -l -u aaden
echo 'Cronjob Before Root'
echo "Innerken322." | sudo -S  crontab -l -u root
echo 'Start to Config cronjob.'
echo "Innerken322." | sudo -S touch conf
echo "Innerken322." | sudo -S chmod 777 conf
echo "0 */12 * * * wget -O /dev/null http://localhost/PHP/CloudStuff/ReportAllTerminalData.php" >>conf
echo "* * * * * wget -O /dev/null http://localhost/PHP/CloudStuff/FetchOrdersForAllTerminal.php" >>conf
echo "* * * * *  wget -O /dev/null http://localhost/PHP/AccessLog.php?op=reportStatus" >>conf
echo "* * * * *  /var/www/html/crontab.sh > /dev/null" >>conf
echo "0 * * * *   wget -O /dev/null http://localhost/PHP/Datev.php?op=autoSendDatevCsv > /dev/null" >>conf
echo "* * * * * curl --location --request GET 'http://localhost/PHP/BackendData.php?op=autoSend3In1'" >>conf
echo "* * * * * curl --location --request GET 'http://localhost/PHP/BackendData.php?op=autoSendMonthSummary'" >>conf
echo "* * * * * curl --location --request GET 'http://localhost/PHP/ZBon.php?op=autoAddCombinedRecord'" >>conf
echo "3 * * * * curl --location --request GET 'http://localhost/PHP/writeDETax2024.php'" >>conf
# 不再写 git doUpdate（59 4 / @reboot）：git 通道 2026-08 已停用，后端 doUpdate 直接跳过，后端更新改走 root 的 auto-upgrade → light-update
echo "*/5 * * * * /usr/local/bin/aaden-cli do-log" >>conf
sudoS crontab -u aaden -r
sudoS crontab -u aaden conf
echo "Innerken322." | sudo -S rm -f conf
crontab -l -u aaden
echo "END Aaden Deploy CONFIG"
echo "Innerken322." | sudo -S rm -rf /etc/cron.d/aaden-cli-upgrade
# 更新 aaden-cli 的两条 cron 调 cliInstall.sh 的固定副本：它看 /usr/local/bin/aaden-cli 实际指向哪里，
# 指向 /opt/aaden-cli（私有分发）就跑 self-update，否则 npm 重装。直接写 npm 的话，私有分发的设备上 npm 会把自己那份删掉。
# 副本放固定位置：包目录会随 npm 重装 / 私有分发换版本而变。万一装不上，就把同样的判断直接写进 cron 行。
CLI_INSTALL=/usr/local/sbin/aaden-cli-install
if sudoS install -m 755 "$(dirname "$(readlink -f "$0")")/cliInstall.sh" "$CLI_INSTALL" && [ -x "$CLI_INSTALL" ]; then
  CLI_UPDATE_CMD="$CLI_INSTALL"
else
  CLI_UPDATE_CMD='case "$(readlink /usr/local/bin/aaden-cli)" in /opt/aaden-cli/*) /usr/local/bin/aaden-cli self-update ;; *) npm install aaden-cli -g ;; esac'
fi
echo "Innerken322." | sudo -S touch conf
echo "Innerken322." | sudo -S chmod 777 conf
# root 的 cron 默认 PATH 只有 /usr/bin:/bin，不含 /usr/local/bin；auto-upgrade 及其
# 子脚本里的 aaden-cli 裸命令需要它（crontab 不支持 $PATH 展开，只能写完整值）。
echo "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >>conf
echo "55 4 * * * $CLI_UPDATE_CMD" >>conf
# auto-upgrade 的输出重定向到日志：cron 默认只在有本地邮件时才留输出，很多设备查不到。
echo "59 4 * * * /usr/local/bin/aaden-cli auto-upgrade >> /var/log/aaden-auto-upgrade.log 2>&1" >>conf
echo "@reboot sleep 30 && $CLI_UPDATE_CMD" >>conf
echo "@reboot sleep 60 && /usr/local/bin/aaden-cli auto-upgrade >> /var/log/aaden-auto-upgrade.log 2>&1" >>conf
echo "Innerken322." | sudo -S crontab -u root -r
echo "Innerken322." | sudo -S crontab -u root conf
echo "Innerken322." | sudo -S rm -f conf
echo "Innerken322." | sudo -S crontab -l
echo  "END Root CONFIG"
