mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-22 15:38:11 +00:00
build: add script for fetching required release versions
This commit is contained in:
parent
7403168438
commit
e89e6ca32e
57
helper-scripts/bump-required-fw-versions.py
Executable file
57
helper-scripts/bump-required-fw-versions.py
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import os
|
||||||
|
import requests
|
||||||
|
|
||||||
|
RELEASES_URL = "https://beta-wallet.trezor.io/data/firmware/{}/releases.json"
|
||||||
|
MODELS = ("1", "T")
|
||||||
|
|
||||||
|
FILENAME = os.path.join(os.path.dirname(__file__), "..", "trezorlib", "__init__.py")
|
||||||
|
START_LINE = "MINIMUM_FIRMWARE_VERSION = {\n"
|
||||||
|
END_LINE = "}\n"
|
||||||
|
|
||||||
|
|
||||||
|
def version_str(vtuple):
|
||||||
|
return ".".join(map(str, vtuple))
|
||||||
|
|
||||||
|
|
||||||
|
def fetch_releases(model):
|
||||||
|
version = model
|
||||||
|
if model == "T":
|
||||||
|
version = "2"
|
||||||
|
|
||||||
|
url = RELEASES_URL.format(version)
|
||||||
|
releases = requests.get(url).json()
|
||||||
|
releases.sort(key=lambda r: r["version"], reverse=True)
|
||||||
|
return releases
|
||||||
|
|
||||||
|
|
||||||
|
def find_latest_required(model):
|
||||||
|
releases = fetch_releases(model)
|
||||||
|
return next(r for r in releases if r["required"])
|
||||||
|
|
||||||
|
|
||||||
|
with open(FILENAME, "r+") as f:
|
||||||
|
output = []
|
||||||
|
line = None
|
||||||
|
# copy up to & incl START_LINE
|
||||||
|
while line != START_LINE:
|
||||||
|
line = next(f)
|
||||||
|
output.append(line)
|
||||||
|
# throw away until END_LINE
|
||||||
|
while line != END_LINE:
|
||||||
|
line = next(f)
|
||||||
|
# append models
|
||||||
|
for model in MODELS:
|
||||||
|
rel = find_latest_required(model)
|
||||||
|
version_tuple = tuple(rel["version"])
|
||||||
|
line = f' "{model}": {version_tuple!r},\n'
|
||||||
|
output.append(line)
|
||||||
|
output.append(END_LINE)
|
||||||
|
# finish reading file
|
||||||
|
for line in f:
|
||||||
|
output.append(line)
|
||||||
|
|
||||||
|
f.seek(0)
|
||||||
|
f.truncate(0)
|
||||||
|
for line in output:
|
||||||
|
f.write(line)
|
@ -2,7 +2,7 @@ __version__ = "0.11.0"
|
|||||||
|
|
||||||
# fmt: off
|
# fmt: off
|
||||||
MINIMUM_FIRMWARE_VERSION = {
|
MINIMUM_FIRMWARE_VERSION = {
|
||||||
"1": (1, 6, 3),
|
"1": (1, 6, 1),
|
||||||
"T": (2, 0, 10),
|
"T": (2, 0, 5),
|
||||||
}
|
}
|
||||||
# fmt: on
|
# fmt: on
|
||||||
|
Loading…
Reference in New Issue
Block a user