summaryrefslogtreecommitdiff
path: root/jsonschema/cli.py
diff options
context:
space:
mode:
authorJulian Berman <Julian@GrayVines.com>2020-03-21 18:18:40 -0400
committerJulian Berman <Julian@GrayVines.com>2020-03-21 18:18:40 -0400
commit2561726af65cea83d5de2768c0801488dcb8f7a0 (patch)
tree1135974ca515df19c7936eef941432ab6a769945 /jsonschema/cli.py
parent93815b074d5780bc03bcdb4a45bd4d6b6afea422 (diff)
downloadjsonschema-2561726af65cea83d5de2768c0801488dcb8f7a0.tar.gz
Don't even bother keeping the whole list of valid/invalid.
Diffstat (limited to 'jsonschema/cli.py')
-rw-r--r--jsonschema/cli.py40
1 files changed, 18 insertions, 22 deletions
diff --git a/jsonschema/cli.py b/jsonschema/cli.py
index 90dd2b3..575d655 100644
--- a/jsonschema/cli.py
+++ b/jsonschema/cli.py
@@ -202,7 +202,7 @@ def run(arguments, stdout=sys.stdout, stderr=sys.stderr, stdin=sys.stdin):
except (IOError, ValueError, SchemaError):
return True
- invalid = []
+ exit_code = 0
if arguments["instances"]:
for instance_path in arguments["instances"]:
@@ -212,17 +212,15 @@ def run(arguments, stdout=sys.stdout, stderr=sys.stderr, stdin=sys.stdin):
stderr.write(
formatter.parsing_error(path=instance_path, error=error),
)
- invalid.append(True)
+ exit_code = 1
else:
- invalid.append(
- _validate_instance(
- instance_path=instance_path,
- instance=instance,
- validator=validator,
- formatter=formatter,
- stdout=stdout,
- stderr=stderr,
- ),
+ exit_code |= _validate_instance(
+ instance_path=instance_path,
+ instance=instance,
+ validator=validator,
+ formatter=formatter,
+ stdout=stdout,
+ stderr=stderr,
)
elif (
stdin is sys.stdin and not sys.stdin.isatty()
@@ -234,17 +232,15 @@ def run(arguments, stdout=sys.stdout, stderr=sys.stderr, stdin=sys.stdin):
stderr.write(
formatter.parsing_error(path="<stdin>", error=error),
)
- invalid.append(True)
+ exit_code = 1
else:
- invalid.append(
- _validate_instance(
- instance_path="<stdin>",
- instance=instance,
- validator=validator,
- formatter=formatter,
- stdout=stdout,
- stderr=stderr,
- ),
+ exit_code |= _validate_instance(
+ instance_path="<stdin>",
+ instance=instance,
+ validator=validator,
+ formatter=formatter,
+ stdout=stdout,
+ stderr=stderr,
)
- return any(invalid)
+ return exit_code