Add a hook for checking parseable json.
diff --git a/pre_commit_hooks/check_json.py b/pre_commit_hooks/check_json.py
new file mode 100644
index 0000000..3caaf34
--- /dev/null
+++ b/pre_commit_hooks/check_json.py
@@ -0,0 +1,27 @@
+from __future__ import print_function
+
+import argparse
+import sys
+import simplejson
+
+from pre_commit_hooks.util import entry
+
+
+@entry
+def check_json(argv):
+ parser = argparse.ArgumentParser()
+ parser.add_argument('filenames', nargs='*', help='JSON filenames to check.')
+ args = parser.parse_args(argv)
+
+ retval = 0
+ for filename in args.filenames:
+ try:
+ simplejson.load(open(filename))
+ except simplejson.JSONDecodeError as e:
+ print('{0}: Failed to json encode ({1})'.format(filename, e))
+ retval = 1
+ return retval
+
+
+if __name__ == '__main__':
+ sys.exit(check_json())
diff --git a/pre_commit_hooks/check_yaml.py b/pre_commit_hooks/check_yaml.py
index 456f1f7..1de7de4 100644
--- a/pre_commit_hooks/check_yaml.py
+++ b/pre_commit_hooks/check_yaml.py
@@ -10,7 +10,7 @@
@entry
def check_yaml(argv):
parser = argparse.ArgumentParser()
- parser.add_argument('filenames', nargs='*', help='Filenames to check.')
+ parser.add_argument('filenames', nargs='*', help='Yaml filenames to check.')
args = parser.parse_args(argv)
retval = 0