blob: acff4cd973398c32f006f277e074ce883eacf40c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/usr/bin/env python3
import json
import sys
from jsonschema import Draft202012Validator
def main() -> int:
if len(sys.argv) != 3:
print("usage: validate_courses.py <schema.json> <data.json>")
return 2
schema_path, data_path = sys.argv[1], sys.argv[2]
with open(schema_path, "r", encoding="utf-8") as f:
schema = json.load(f)
with open(data_path, "r", encoding="utf-8") as f:
data = json.load(f)
validator = Draft202012Validator(schema)
errors = list(validator.iter_errors(data[0] if isinstance(data, list) and data else data))
if errors:
for err in errors:
print(f"error: {err.message} at {list(err.path)}")
return 1
print("ok")
return 0
if __name__ == "__main__":
sys.exit(main())
|