mirror of
https://github.com/SteamFramelyHomebrew/framely.git
synced 2026-10-18 10:01:23 +02:00
16 lines
775 B
Python
16 lines
775 B
Python
#!/usr/bin/env python3
|
|
"""Fetch immutable, checksum-verified upstream media dependencies."""
|
|
import hashlib,io,json,tarfile,urllib.request
|
|
from pathlib import Path
|
|
base=Path(__file__).resolve().parent.parent
|
|
pins=json.loads((base/'media/dependencies.json').read_text())
|
|
for name,pin in pins.items():
|
|
payload=urllib.request.urlopen(pin['url'],timeout=120).read()
|
|
if hashlib.sha256(payload).hexdigest()!=pin['sha256']:
|
|
raise SystemExit(f'{name}: upstream archive checksum mismatch')
|
|
target=base/'media'/('bin' if name=='mediamtx' else 'source')
|
|
target.mkdir(exist_ok=True)
|
|
with tarfile.open(fileobj=io.BytesIO(payload),mode='r:*') as archive:
|
|
archive.extractall(target,filter='data')
|
|
if name=='mediamtx':(target/'mediamtx').chmod(0o755)
|