Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
from pathlib import Path
|
||||
import sys,hashlib,json,shutil
|
||||
R=Path('/home/jakub/devel/escapistsrereintroduced');B=Path('/tmp/erri-crash-root-1852');S=B/'frozen-source';sys.path.insert(0,str(R/'tools'));from source_manifest import addon_manifest
|
||||
sha=lambda p:hashlib.sha256(p.read_bytes()).hexdigest()
|
||||
files=addon_manifest(R)
|
||||
for folder in ['tests','tools','terrain-profiles','terrain-adapters','terrain-integrations']:
|
||||
files.update({str(p.relative_to(R)):sha(p) for p in (R/folder).rglob('*') if p.is_file() and '__pycache__' not in p.parts and p.suffix!='.pyc'})
|
||||
files.update({str(p.relative_to(R)):sha(p) for p in (R/'docs').iterdir() if p.is_file()})
|
||||
for name in ['README.md','.gitignore']:files[name]=sha(R/name)
|
||||
assert not S.exists();S.mkdir()
|
||||
for name,h in files.items():
|
||||
target=S/name;target.parent.mkdir(parents=True,exist_ok=True);shutil.copyfile(R/name,target);assert sha(target)==h,name
|
||||
for name,h in files.items():assert sha(R/name)==h,name
|
||||
(B/'frozen-source-sha256.json').write_text(json.dumps(files,indent=2)+'\n')
|
||||
s=(B/'run-suite.py').read_text().replace("R=Path('/home/jakub/devel/escapistsrereintroduced')", "R=Path('/tmp/erri-crash-root-1852/frozen-source')")
|
||||
s=s.replace('original=subprocess.run;programs=[]',"os.environ['ERR_REPO']=str(R) # Pin legacy test roots to this exact frozen tree.\noriginal=subprocess.run;programs=[]")
|
||||
s=s.replace("'removed_override_names':sorted(removed_overrides)","'removed_override_names':sorted(removed_overrides),'canonical_test_root':str(R),'explicit_ERR_REPO':str(R)")
|
||||
(B/'run-frozen-suite.py').write_text(s)
|
||||
print('Frozen',len(files),'inputs independently of concurrent live edits')
|
||||
Reference in New Issue
Block a user