mirror of
https://github.com/hohn/sarif-cli.git
synced 2025-12-16 09:13:04 +01:00
39 lines
988 B
Python
Executable File
39 lines
988 B
Python
Executable File
#!/usr/bin/env python
|
|
import json
|
|
import sarif_cli.traverse as S
|
|
import sys
|
|
|
|
# TODO command-line: sarif-digest [<file>]
|
|
#
|
|
# reduce size by listing only first/last elements
|
|
fpath = sys.argv[1]
|
|
with open(fpath, 'r') as fp:
|
|
sarif_struct = json.load(fp)
|
|
|
|
def _show_dict(elem, context):
|
|
return {key : _compact(val, key) for key, val in elem.items()}
|
|
|
|
def _show_list(elem, context):
|
|
if len(elem) > 2:
|
|
# first and last
|
|
return ["------------%d items, showing first and last ----------" % len(elem),
|
|
_compact(elem[0], 0),
|
|
_compact(elem[-1], -1)]
|
|
if len(elem) > 0:
|
|
return [_compact(elem[i], i) for i in range(0, len(elem))]
|
|
else:
|
|
return elem
|
|
|
|
def _compact(elem, context):
|
|
t = type(elem)
|
|
if t == dict:
|
|
return _show_dict(elem, context)
|
|
elif t == list:
|
|
return _show_list(elem, context)
|
|
else:
|
|
return elem
|
|
|
|
json.dump(_compact(sarif_struct, "starting"), sys.stdout, indent=2)
|
|
|
|
|