1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-14 11:39:03 +00:00

build: add script for fetching required release versions

This commit is contained in:
matejcik 2018-12-04 17:19:51 +01:00
parent 7403168438
commit e89e6ca32e
2 changed files with 59 additions and 2 deletions

View 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)

View File

@ -2,7 +2,7 @@ __version__ = "0.11.0"
# fmt: off
MINIMUM_FIRMWARE_VERSION = {
"1": (1, 6, 3),
"T": (2, 0, 10),
"1": (1, 6, 1),
"T": (2, 0, 5),
}
# fmt: on