40-validation/promote-evidence.py

#!/usr/bin/env python3
from __future__ import annotations
import argparse, json
from pathlib import Path
from evidence_retention import promote_evidence, retain_failed

def main() -> int:
    p=argparse.ArgumentParser(description="Promote fresh evidence or retain failed evidence")
    p.add_argument('repository_roots',type=Path); p.add_argument('evidence',type=Path)
    p.add_argument('retained_root',type=Path); p.add_argument('index',type=Path)
    p.add_argument('--failed',action='store_true')
    a=p.parse_args()
    try:
        result=retain_failed(a.evidence,a.retained_root,a.index) if a.failed else promote_evidence(a.repository_roots,a.evidence,a.retained_root,a.index)
    except Exception as exc:
        print(f'ERROR: {exc}'); return 1
    print(json.dumps(result,indent=2)); return 0
if __name__=='__main__': raise SystemExit(main())