Release 3.8.0.2: app.zip updates, lock hygiene, secret-safe getState.
This commit is contained in:
Executable
+59
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Sync versioninfo.json + build-macos.bat from internal/update/update.go constants."""
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
UPDATE_GO = ROOT / "internal" / "update" / "update.go"
|
||||
VERSIONINFO = ROOT / "versioninfo.json"
|
||||
BUILD_BAT = ROOT / "build-macos.bat"
|
||||
|
||||
|
||||
def read_consts() -> tuple[str, int]:
|
||||
text = UPDATE_GO.read_text(encoding="utf-8")
|
||||
m = re.search(r'CurrentVersion\s*=\s*"([^"]+)"', text)
|
||||
b = re.search(r"const BuildNumber\s*=\s*(\d+)", text)
|
||||
if not m or not b:
|
||||
raise SystemExit("cannot parse CurrentVersion/BuildNumber from update.go")
|
||||
return m.group(1), int(b.group(1))
|
||||
|
||||
|
||||
def main() -> None:
|
||||
ver, build = read_consts()
|
||||
parts = [int(x) for x in ver.split(".")]
|
||||
while len(parts) < 3:
|
||||
parts.append(0)
|
||||
major, minor, patch = parts[0], parts[1], parts[2]
|
||||
full = f"{ver}.{build}"
|
||||
|
||||
data = json.loads(VERSIONINFO.read_text(encoding="utf-8"))
|
||||
data["FixedFileInfo"]["FileVersion"] = {
|
||||
"Major": major,
|
||||
"Minor": minor,
|
||||
"Patch": patch,
|
||||
"Build": build,
|
||||
}
|
||||
data["FixedFileInfo"]["ProductVersion"] = dict(data["FixedFileInfo"]["FileVersion"])
|
||||
data["StringFileInfo"]["FileVersion"] = full
|
||||
data["StringFileInfo"]["ProductVersion"] = full
|
||||
VERSIONINFO.write_text(json.dumps(data, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
|
||||
print("updated", VERSIONINFO, "->", full)
|
||||
|
||||
bat = BUILD_BAT.read_text(encoding="utf-8")
|
||||
bat2 = re.sub(
|
||||
r'-version\s+\d+\.\d+\.\d+\s+-build\s+\d+\.\d+\.\d+\.\d+',
|
||||
f"-version {ver} -build {full}",
|
||||
bat,
|
||||
)
|
||||
if bat2 != bat:
|
||||
BUILD_BAT.write_text(bat2, encoding="utf-8")
|
||||
print("updated", BUILD_BAT, "->", ver, full)
|
||||
else:
|
||||
print("build-macos.bat already in sync")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user