44 lines
782 B
Python
Executable File
44 lines
782 B
Python
Executable File
#!/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)
|