111 lines
3.3 KiB
Bash
111 lines
3.3 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
# sync-upstream.sh - 同步原作者代码 + 保留我们的定制
|
|||
|
|
#
|
|||
|
|
# 用法:每次原作者有大改动时跑一次
|
|||
|
|
# HTTPS_PROXY=http://127.0.0.1:7890 bash sync-upstream.sh
|
|||
|
|
#
|
|||
|
|
# 做的事:
|
|||
|
|
# 1. 备份我们的定制文件到 /tmp/wwf-ours/
|
|||
|
|
# 2. 拉取原作者最新代码(github/main)
|
|||
|
|
# 3. 把我们的定制文件加回去
|
|||
|
|
# 4. 推到 Gitea
|
|||
|
|
#
|
|||
|
|
# 前提:已经 git remote add github https://github.com/jaxperro/winning-wallet-finder.git
|
|||
|
|
|
|||
|
|
set -e
|
|||
|
|
cd "$(git rev-parse --show-toplevel)"
|
|||
|
|
|
|||
|
|
echo "=== 1. 备份我们的定制文件 ==="
|
|||
|
|
BACKUP="/tmp/wwf-ours"
|
|||
|
|
rm -rf "$BACKUP"
|
|||
|
|
mkdir -p "$BACKUP/host" "$BACKUP/live"
|
|||
|
|
|
|||
|
|
# 我们的定制文件清单(新增定制文件必须加到这里!)
|
|||
|
|
OUR_FILES=(
|
|||
|
|
"live/serve_dashboard.py"
|
|||
|
|
"live/bot_dashboard.html"
|
|||
|
|
"live/sync_live_floors.py"
|
|||
|
|
"live/setup_wallets.py"
|
|||
|
|
"host/mihomo-healthcheck.sh"
|
|||
|
|
"sync-upstream.sh"
|
|||
|
|
"DEPLOY.md"
|
|||
|
|
"USAGE.md"
|
|||
|
|
"日常使用.md"
|
|||
|
|
"问题排查与踩坑记录.md"
|
|||
|
|
"mihomo代理部署教程.md"
|
|||
|
|
"云端架构.md"
|
|||
|
|
"实盘配置.md"
|
|||
|
|
"常用命令.md"
|
|||
|
|
"项目流程.md"
|
|||
|
|
"钱包筛选流程.md"
|
|||
|
|
"每周Bench-Review流程.md"
|
|||
|
|
"同步作者代码指南.md"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
for f in "${OUR_FILES[@]}"; do
|
|||
|
|
if [ -f "$f" ]; then
|
|||
|
|
mkdir -p "$BACKUP/$(dirname "$f")"
|
|||
|
|
cp "$f" "$BACKUP/$f"
|
|||
|
|
echo " 备份: $f"
|
|||
|
|
fi
|
|||
|
|
done
|
|||
|
|
|
|||
|
|
# 也备份我们的钱包配置(要覆盖回作者的)
|
|||
|
|
if [ -f "live/copybot.paper.json" ]; then
|
|||
|
|
cp "live/copybot.paper.json" "$BACKUP/live/copybot.paper.json.ours"
|
|||
|
|
echo " 备份: live/copybot.paper.json (我们的钱包配置)"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "=== 2. 拉取原作者最新代码 ==="
|
|||
|
|
git fetch github
|
|||
|
|
git checkout -B sync-upstream github/main
|
|||
|
|
echo " 当前代码: $(git log --oneline -1)"
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "=== 3. 加回我们的定制文件 ==="
|
|||
|
|
for f in "${OUR_FILES[@]}"; do
|
|||
|
|
if [ -f "$BACKUP/$f" ]; then
|
|||
|
|
mkdir -p "$(dirname "$f")"
|
|||
|
|
cp "$BACKUP/$f" "$f"
|
|||
|
|
echo " 恢复: $f"
|
|||
|
|
fi
|
|||
|
|
done
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "=== 4. 恢复我们的钱包配置 ==="
|
|||
|
|
if [ -f "$BACKUP/live/copybot.paper.json.ours" ]; then
|
|||
|
|
cp "$BACKUP/live/copybot.paper.json.ours" "live/copybot.paper.json"
|
|||
|
|
echo " 恢复: live/copybot.paper.json (我们的钱包)"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# config.live.json 是 gitignored 的,不会被覆盖
|
|||
|
|
if [ ! -f "config.live.json" ]; then
|
|||
|
|
cp config.live.example.json config.live.json
|
|||
|
|
echo " 创建: config.live.json (从模板,需要填 bankroll + 钱包)"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo ""
|
|||
|
|
echo "=== 5. 提交 + 推送 ==="
|
|||
|
|
git add -A
|
|||
|
|
git commit -m "sync: upstream + our customizations (dashboard, healthcheck, docs, wallet setup)
|
|||
|
|
|
|||
|
|
Synced from github/main: $(git log --oneline github/main -1)
|
|||
|
|
Our additions: serve_dashboard.py, bot_dashboard.html, mihomo-healthcheck.sh,
|
|||
|
|
sync_live_floors.py, setup_wallets.py, 中文文档, 我们的钱包配置" || echo " 没有改动需要提交"
|
|||
|
|
|
|||
|
|
git push origin sync-upstream:main --force
|
|||
|
|
echo ""
|
|||
|
|
echo "=== 完成 ==="
|
|||
|
|
echo "已推送到 Gitea main 分支"
|
|||
|
|
echo ""
|
|||
|
|
echo "下一步:在服务器上更新"
|
|||
|
|
echo " cd /opt/winning-wallet-finder"
|
|||
|
|
echo " systemctl stop copybot-live copybot-paper"
|
|||
|
|
echo " git fetch origin && git reset --hard origin/main"
|
|||
|
|
echo " rm -f copybot_state*.json copybot_fills*.jsonl live/copybot_live*.json"
|
|||
|
|
echo " cp host/mihomo-healthcheck.sh /opt/mihomo-healthcheck.sh"
|
|||
|
|
echo " cd live && python3 setup_wallets.py"
|
|||
|
|
echo " chown wwf:wwf ../config.live.json copybot.paper.json"
|
|||
|
|
echo " systemctl start copybot-paper copybot-live"
|