Continues processing JSONs even if hook fails (fixes #1038)
diff --git a/pre_commit_hooks/pretty_format_json.py b/pre_commit_hooks/pretty_format_json.py
index 627a11c..5c0292b 100644
--- a/pre_commit_hooks/pretty_format_json.py
+++ b/pre_commit_hooks/pretty_format_json.py
@@ -115,16 +115,20 @@
                 f'Input File {json_file} is not a valid JSON, consider using '
                 f'check-json',
             )
-            return 1
-
-        if contents != pretty_contents:
-            if args.autofix:
-                _autofix(json_file, pretty_contents)
-            else:
-                diff_output = get_diff(contents, pretty_contents, json_file)
-                sys.stdout.buffer.write(diff_output.encode())
-
             status = 1
+        else:
+            if contents != pretty_contents:
+                if args.autofix:
+                    _autofix(json_file, pretty_contents)
+                else:
+                    diff_output = get_diff(
+                        contents,
+                        pretty_contents,
+                        json_file,
+                    )
+                    sys.stdout.buffer.write(diff_output.encode())
+
+                status = 1
 
     return status
 
diff --git a/tests/pretty_format_json_test.py b/tests/pretty_format_json_test.py
index 5ded724..68b6d7a 100644
--- a/tests/pretty_format_json_test.py
+++ b/tests/pretty_format_json_test.py
@@ -82,6 +82,24 @@
     assert ret == 0
 
 
+def test_invalid_main(tmpdir):
+    srcfile1 = tmpdir.join('not_valid_json.json')
+    srcfile1.write(
+        '{\n'
+        '  // not json\n'
+        '  "a": "b"\n'
+        '}',
+    )
+    srcfile2 = tmpdir.join('to_be_json_formatted.json')
+    srcfile2.write('{ "a": "b" }')
+
+    # it should have skipped the first file and formatted the second one
+    assert main(['--autofix', str(srcfile1), str(srcfile2)]) == 1
+
+    # confirm second file was formatted (shouldn't trigger linter again)
+    assert main([str(srcfile2)]) == 0
+
+
 def test_orderfile_get_pretty_format():
     ret = main((
         '--top-keys=alist', get_resource_path('pretty_formatted_json.json'),