From 12c566e320b06da7db66c5e220d90d25fd845f42 Mon Sep 17 00:00:00 2001 From: spark Date: Fri, 23 Oct 2026 18:03:10 +0000 Subject: [PATCH] spark: add working JSON validator script --- wizard-work/spark/json-validator.py | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 wizard-work/spark/json-validator.py diff --git a/wizard-work/spark/json-validator.py b/wizard-work/spark/json-validator.py new file mode 100644 index 0000000..26a833b --- /dev/null +++ b/wizard-work/spark/json-validator.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +"""Quick JSON validator - validates JSON files and reports errors.""" +import json +import sys +from pathlib import Path + + +def validate_json_file(filepath: str) -> bool: + """Validate a JSON file. Returns True if valid, False otherwise.""" + try: + with open(filepath, 'r') as f: + json.load(f) + print(f"VALID: {filepath}") + return True + except json.JSONDecodeError as e: + print(f"INVALID: {filepath} - {e}") + return False + except FileNotFoundError: + print(f"NOT FOUND: {filepath}") + return False + + +def main(): + if len(sys.argv) < 2: + print("Usage: json-validator.py ") + sys.exit(1) + + paths = sys.argv[1:] + all_valid = True + + for path in paths: + p = Path(path) + if p.is_dir(): + for json_file in p.rglob("*.json"): + if not validate_json_file(str(json_file)): + all_valid = False + elif p.is_file(): + if not validate_json_file(str(p)): + all_valid = False + else: + print(f"NOT FOUND: {path}") + all_valid = False + + sys.exit(0 if all_valid else 1) + + +if __name__ == "__main__": + main() \ No newline at end of file