#!/usr/bin/env python3
"""Compare a new build to the recorded initial artifacts without claiming reproducibility."""
import argparse
import hashlib
import json
from pathlib import Path

bundle = Path(__file__).resolve().parents[1]
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('--output-dir', type=Path, default=bundle / 'work/output')
args = parser.parse_args()
reference = json.loads((bundle / 'expected-artifacts.json').read_text())
result = []
for item in reference['referenceBuildOutputs']:
    path = args.output_dir / item['file']
    actual = hashlib.sha256(path.read_bytes()).hexdigest() if path.is_file() else None
    result.append({'file': item['file'], 'expectedSha256': item['sha256'], 'actualSha256': actual,
                   'matchesInitialBuild': actual == item['sha256']})
print(json.dumps({'comparison': result,
                  'independentRepeatBuildVerifiedByPublisher': False}, indent=2))
