register-industry-evidence.py 1.1 KB

123456789101112131415161718192021222324252627282930
  1. """Register existing local collector evidence; no upstream requests or publication."""
  2. import argparse
  3. import json
  4. from pathlib import Path
  5. import sys
  6. sys.path.insert(0, str(Path(__file__).resolve().parents[1] / 'server/voc-library'))
  7. from monitoring_store import import_run, read_state, projection
  8. def main():
  9. p = argparse.ArgumentParser(description=__doc__)
  10. p.add_argument('command', choices=['import', 'status'])
  11. p.add_argument('--store', required=True)
  12. p.add_argument('--manifest', help='ksf.monitoring-run.v1 JSON; raw paths relative to this file')
  13. args = p.parse_args()
  14. try:
  15. if args.command == 'import':
  16. path = Path(args.manifest).resolve()
  17. result = import_run(args.store, json.loads(path.read_text('utf-8-sig')), path.parent)
  18. else:
  19. result = {'ok': True, **projection(read_state(args.store), {}, set())}
  20. print(json.dumps(result, ensure_ascii=False))
  21. except Exception as error:
  22. print(json.dumps({'ok': False, 'error': str(error)}, ensure_ascii=False))
  23. sys.exit(1)
  24. if __name__ == '__main__':
  25. main()