34 lines
1.9 KiB
Python
34 lines
1.9 KiB
Python
|
|
"""Apply reviewed patches to pinned upstream checkouts. No Apple credentials involved."""
|
||
|
|
import json
|
||
|
|
from pathlib import Path
|
||
|
|
import subprocess
|
||
|
|
import sys
|
||
|
|
|
||
|
|
root = Path(sys.argv[1]).resolve()
|
||
|
|
patches = Path(__file__).resolve().parent
|
||
|
|
versions = {
|
||
|
|
"iloader": "348eefd7de78e9bc612c9d619b8b1e7a80ba3ba0",
|
||
|
|
"isideload": "f6a4d5dba717d72fc2af63eaba26b27ba44116be",
|
||
|
|
"apple-crates": "5da0b8df9b202434b1eff2700059b1ee142592ac",
|
||
|
|
}
|
||
|
|
for name, commit in versions.items():
|
||
|
|
path = root / name
|
||
|
|
actual = subprocess.check_output(["git", "-C", str(path), "rev-parse", "HEAD"], text=True).strip()
|
||
|
|
if actual != commit:
|
||
|
|
raise RuntimeError(f"Unexpected {name} revision: {actual}")
|
||
|
|
for name, patch in [("isideload", "isideload.patch"), ("apple-crates", "apple-codesign.patch")]:
|
||
|
|
subprocess.run(["git", "-C", str(root/name), "apply", "--check", str(patches/patch)], check=True)
|
||
|
|
subprocess.run(["git", "-C", str(root/name), "apply", str(patches/patch)], check=True)
|
||
|
|
|
||
|
|
manifest = root / "iloader/src-tauri/Cargo.toml"
|
||
|
|
with manifest.open("a", encoding="utf-8") as file:
|
||
|
|
file.write('\n[patch."https://github.com/nab138/isideload"]\nisideload = { path = "../../isideload/isideload" }\n')
|
||
|
|
file.write('\n[patch."https://github.com/nab138/apple-crates"]\napple-codesign = { path = "../../apple-crates/apple-codesign-quick" }\n')
|
||
|
|
# Portable helper: preserve upstream identifier/storage so existing Apple login can
|
||
|
|
# be reused locally. Use a distinct title and disable upstream update replacement.
|
||
|
|
config = root / "iloader/src-tauri/ci.conf.json"
|
||
|
|
value = json.loads(config.read_text(encoding="utf-8"))
|
||
|
|
value["app"] = {"windows": [{"title": "iloader — MusicBridge compatibility build", "width": 800, "height": 600}]}
|
||
|
|
config.write_text(json.dumps(value, indent=2), encoding="utf-8")
|
||
|
|
print("Patched pinned iloader, extension discovery, nested signing and profile-checked Keychain sharing.")
|