mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 18:20:43 +00:00
78 lines
2.5 KiB
Python
78 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"
|
|
|
|
# 电脑端对外发的是**安装包**,不是 zip(和 Gitee 发行版保持一致)
|
|
UPLOADS = [
|
|
(f"dist/ykxmz-setup-{VER}.exe", f"{REMOTE_DIR}/ykxmz-setup-{VER}.exe"),
|
|
(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())
|