Files
aios/scripts/generate_release_manifest.py

11 lines
854 B
Python

#!/usr/bin/env python3
import pathlib, sys, os, json, hashlib, time
runtime=pathlib.Path(sys.argv[1] if len(sys.argv)>1 else os.environ.get('AIOS_RUNTIME_ROOT','.')).resolve(); out=runtime/'.aios_patch_manifests'; out.mkdir(exist_ok=True)
files=[]
if (runtime/'webops').exists():
for p in (runtime/'webops').rglob('*'):
if p.is_file(): files.append({'path':str(p.relative_to(runtime)),'sha256':hashlib.sha256(p.read_bytes()).hexdigest(),'size':p.stat().st_size})
manifest={'release_id':os.environ.get('AIOS_RELEASE_ID','manual'),'created_at':time.strftime('%Y-%m-%dT%H:%M:%SZ',time.gmtime()),'files':files,'roles':['owner','admin','user'],'nodes':['server-hw','server-local']}
(out/'release_manifest.json').write_text(json.dumps(manifest,ensure_ascii=False,indent=2),encoding='utf-8')
print('RELEASE_MANIFEST_WRITTEN', out/'release_manifest.json')