Release Vulpes OS 2.7-preview.22
This commit is contained in:
parent
200d1fb235
commit
a138f97877
294 changed files with 515786 additions and 187 deletions
45
tundra/tools/package-beatles-gaia.py
Normal file
45
tundra/tools/package-beatles-gaia.py
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
"""Export shared Gaia and its host for the private Nokia experiment."""
|
||||
import hashlib
|
||||
import json
|
||||
from pathlib import Path
|
||||
import sys
|
||||
import tarfile
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
sys.path.insert(0,str(ROOT/'tools'))
|
||||
from project import SOURCE_OVERRIDES, validate_assets
|
||||
|
||||
|
||||
def shared_files():
|
||||
validate_assets()
|
||||
files = set()
|
||||
for directory in ('assets','host','services','adapters','overrides','gaia/shared'):
|
||||
files.update(p for p in (ROOT/directory).rglob('*') if p.is_file())
|
||||
for app, paths in SOURCE_OVERRIDES.items():
|
||||
files.update(ROOT/'gaia/apps'/app/path for path in paths)
|
||||
files.update(ROOT/path for path in ('release.json','engine-lock.json','tools/project.py',
|
||||
'tools/serve-gaia.py','tools/installed_apps.py'))
|
||||
return sorted(p for p in files if '__pycache__' not in p.parts and p.suffix!='.pyc')
|
||||
|
||||
|
||||
def main():
|
||||
out = ROOT/'tundra/out/beatles/gecko-156.0.1'
|
||||
files = shared_files()
|
||||
records = {}
|
||||
with tarfile.open(out/'gaia-shared.tar.gz','w:gz',compresslevel=1,dereference=True) as archive:
|
||||
for path in sorted(files):
|
||||
if '__pycache__' in path.parts or path.suffix=='.pyc':continue
|
||||
relative=str(path.relative_to(ROOT))
|
||||
archive.add(path,arcname='opt/vulpes/'+relative)
|
||||
records[relative]=hashlib.sha256(path.read_bytes()).hexdigest()
|
||||
with (out/'gaia-shared.tar.gz').open('rb') as stream:
|
||||
digest=hashlib.file_digest(stream,'sha256').hexdigest()
|
||||
record={'device':'beatles','gaiaSource':'shared workspace',
|
||||
'sha256':digest,'bytes':(out/'gaia-shared.tar.gz').stat().st_size,'files':records}
|
||||
(out/'gaia-shared.json').write_text(json.dumps(record,indent=2)+'\n')
|
||||
print('Shared Gaia files:',len(records),'Archive bytes:',record['bytes'])
|
||||
|
||||
|
||||
if __name__=='__main__':main()
|
||||
Loading…
Reference in a new issue