Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
19 lines
1.1 KiB
Python
19 lines
1.1 KiB
Python
from pathlib import Path
|
|
import hashlib,json,shutil,sys
|
|
r=Path('/home/jakub/devel/escapistsrereintroduced');f=r/'.build/playtest-source-2026-10-03-mine-safety';b=Path('/tmp/erri-gameplay-root-0644');sys.path.insert(0,str(r/'tools'));from source_manifest import addon_manifest
|
|
m=addon_manifest(r);f.mkdir(exist_ok=False)
|
|
for n in m:
|
|
p=f/n;p.parent.mkdir(parents=True,exist_ok=True);shutil.copyfile(r/n,p)
|
|
for p in (r/'addons/core').glob('resourceDatabase.rdb*'):shutil.copyfile(p,f/'addons/core'/p.name)
|
|
for folder in ['tools','tests','terrain-profiles','terrain-adapters','terrain-integrations']:shutil.copytree(r/folder,f/folder,ignore=shutil.ignore_patterns('__pycache__','*.pyc'))
|
|
(f/'docs').mkdir()
|
|
for p in (r/'docs').iterdir():
|
|
if p.is_file():shutil.copyfile(p,f/'docs'/p.name)
|
|
(f/'docs/evidence').symlink_to(r/'docs/evidence',target_is_directory=True)
|
|
for n in ['README.md','.gitignore']:shutil.copyfile(r/n,f/n)
|
|
(f/'frozen-source.json').write_text(json.dumps(m,indent=2)+'\n')
|
|
assert addon_manifest(f)==m
|
|
(b/'frozen-source.json').write_text(json.dumps(m,indent=2)+'\n')
|
|
|
|
print('Frozen authored source files:',len(m))
|