"""Read-only search of original signed resource names for constellation assets."""
import concurrent.futures, importlib.util, json, re, sys
from pathlib import Path
out=Path('artifacts/galaxy-query-research/constellations/signed-resource-names.json')
out.parent.mkdir(parents=True,exist_ok=True)
saved=sys.argv;sys.argv=['inventory',str(out)]
spec=importlib.util.spec_from_file_location('original_assets','research/galaxy_asset_inventory.py')
assets=importlib.util.module_from_spec(spec);spec.loader.exec_module(assets);sys.argv=saved
assets.PATTERN=re.compile(rb'constell|asterism',re.I)
count=0;rows=[]
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as pool:
for scanned,found in pool.map(assets.scan,sorted(p for p in assets.ROOT.iterdir() if p.is_dir())):
count+=scanned;rows.extend(found)
out.write_text(json.dumps(dict(scope='Original local signed resource names and bounded decoded prefixes; no game process access',signedResources=count,resources=rows),indent=2),encoding='utf-8')
print(f'signedResources={count} matchingNames={len(rows)}',flush=True)
"""Read-only search of original signed resource names for constellation assets."""
import concurrent.futures, importlib.util, json, re, sys
from pathlib import Path
out=Path('artifacts/galaxy-query-research/constellations/signed-resource-names.json')
out.parent.mkdir(parents=True,exist_ok=True)
saved=sys.argv;sys.argv=['inventory',str(out)]
spec=importlib.util.spec_from_file_location('original_assets','research/galaxy_asset_inventory.py')
assets=importlib.util.module_from_spec(spec);spec.loader.exec_module(assets);sys.argv=saved
assets.PATTERN=re.compile(rb'constell|asterism',re.I)
count=0;rows=[]
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as pool:
for scanned,found in pool.map(assets.scan,sorted(p for p in assets.ROOT.iterdir() if p.is_dir())):
count+=scanned;rows.extend(found)
out.write_text(json.dumps(dict(scope='Original local signed resource names and bounded decoded prefixes; no game process access',signedResources=count,resources=rows),indent=2),encoding='utf-8')
print(f'signedResources={count} matchingNames={len(rows)}',flush=True)