#!/usr/bin/env python3 """Validate mirrored records and the sync manifest.""" import json from pathlib import Path root = Path(__file__).resolve().parents[1] state = json.loads((root / 'state/sync.json').read_text()) files = list((root / 'data').rglob('CVE-*.json')) if not files or len(files) != state['records']: raise SystemExit(f'Record count mismatch: expected {state["records"]}, got {len(files)}') for path in files: with path.open(encoding='utf-8') as f: record = json.load(f) if record.get('cveMetadata', {}).get('cveId') != path.stem: raise SystemExit(f'Invalid record {path}') print(f'Validated {len(files)} CVE records')