Files
ykxmz/_build/sync_device_161.py
T
xmz7891 ce87ec1650 1.7.0:常规发布
- 版本号 1.7.0 -> 1.7.0
- 重建三端并打包
- 关键测试全过
2026-10-06 23:08:07 +08:00

77 lines
2.5 KiB
Python

# -*- coding: utf-8 -*-
r"""设备回来了:把成品传到下载区,并部署最新 relay。
版本号从 _build/package_remote.py 里读,不用手改。
"""
from __future__ import annotations
import re
import sys
from pathlib import Path
ROOT = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote")
sys.path.insert(0, str(ROOT / "_build"))
from devssh import run, upload # noqa: E402
def current_version() -> str:
text = (ROOT / "_build" / "package_remote.py").read_text(encoding="utf-8")
match = re.search(r'VERSION\s*=\s*"([^"]+)"', text)
return match.group(1) if match else "0.0.0"
VER = current_version()
REMOTE_DIR = "/root/lanremote-relay/downloads"
UPLOADS = [
(f"dist/ykxmz-agent-{VER}.zip", f"{REMOTE_DIR}/ykxmz-agent-{VER}.zip"),
(f"dist/ykxmz-server-{VER}.zip", f"{REMOTE_DIR}/ykxmz-server-{VER}.zip"),
(f"dist/ykxmz-watch-{VER}.apk", f"{REMOTE_DIR}/ykxmz-watch-{VER}.apk"),
]
def main() -> int:
print("===== 1. 清掉旧版本 =====")
_c, out, _e = run(f"ls {REMOTE_DIR}/ 2>/dev/null", timeout=30)
for line in (out or "").splitlines():
name = line.strip()
if name and VER not in name:
run(f"rm -f '{REMOTE_DIR}/{name}'", timeout=30)
print(f" 删除 {name}")
print()
print(f"===== 2. 上传 {VER} =====")
for local, remote in UPLOADS:
src = ROOT / local
if not src.is_file():
print(f" [失败] {local} 不存在")
return 1
upload(str(src), remote, 0o644)
print(f" ✓ {src.name} ({src.stat().st_size / 1024 / 1024:.2f} MB)")
print()
print("===== 3. 部署最新 relay.py / net-tune.sh =====")
for local, remote in (("relay/relay.py", "/root/lanremote-relay/relay.py"),
("relay/net-tune.sh",
"/root/lanremote-relay/net-tune.sh"),
("relay/watchdog.sh",
"/root/lanremote-relay/watchdog.sh")):
upload(str(ROOT / local), remote, 0o755)
print(f" ✓ {Path(local).name}")
run("systemctl restart lanremote-relay", timeout=90)
print(" 已重启中转服务")
print()
print("===== 4. 确认 =====")
_c, out, _e = run(
"sleep 4; echo ' 版本: '$(curl -s --max-time 8 "
"http://127.0.0.1:8080/v1/health | head -c 100); "
f"echo; ls -la {REMOTE_DIR}/ | tail -5", timeout=90)
print(out)
return 0
if __name__ == "__main__":
sys.exit(main())