"""Extract published evidence into a NEW folder. Does not execute model code."""
from pathlib import Path
import hashlib
import json
import sys

source = Path(__file__).with_name('artifact-data.json')
target = Path(sys.argv[1] if len(sys.argv) > 1 else 'nymrel-pilot-evidence').resolve()
target.mkdir(exist_ok=False)
files = json.loads(source.read_text(encoding='utf-8'))
for relative, content in files.items():
    path = (target / relative).resolve()
    if not path.is_relative_to(target) or path == target:
        raise ValueError('Unsafe archive path')
    path.parent.mkdir(parents=True, exist_ok=True)
    path.write_bytes(content.encode('utf-8'))
manifest = json.loads((target/'ARTIFACT_MANIFEST.json').read_text(encoding='utf-8'))
for relative, expected in manifest.items():
    if hashlib.sha256((target/relative).read_bytes()).hexdigest() != expected:
        raise ValueError('Hash mismatch: '+relative)
print('Verified evidence extracted to', target)
print('Read RESULTS.md and inspect code before running the supplied grader.')
