#!/usr/bin/env python2.7 import os import sys import glob import json import argparse failed = False parser = argparse.ArgumentParser(description='JSON validator') parser.add_argument('filename', metavar="FILE | DIR", default=".") def test_file(filename): global failed fd = open(filename) try: data = json.load(fd) except ValueError, e: sys.stdout.write('[fail] ' + filename + '\n') failed=True else: sys.stdout.write('[pass] ' + filename + '\n') fd.close() def test_dir(path): files = glob.glob(path + '/*.json') for f in files: test_file(f) if __name__ == "__main__": args = parser.parse_args() if not args: parser.print_help() if os.path.isdir(args.filename): test_dir(args.filename) else: test_file(args.filename) if failed: sys.exit(1)