Add hidden option --splitted to manage json splitted into files

pull/113/head
Josselin 6 years ago
parent 7f93370128
commit 4359a56447
  1. 18
      slither/__main__.py

@ -76,16 +76,17 @@ def process_truffle(dirname, args, detector_classes, printer_classes):
logger.info(red('No truffle build directory found, did you run `truffle compile`?'))
return ([], 0)
filenames = glob.glob(os.path.join(dirname,'build','contracts', '*.json'))
filenames = glob.glob(os.path.join(dirname, 'build', 'contracts', '*.json'))
return process_files(filenames, args, detector_classes, printer_classes)
def process_files(filenames, args, detector_classes, printer_classes):
all_contracts = []
all_filenames = []
for filename in filenames:
with open(filename) as f:
contract_loaded = json.load(f)
all_contracts.append(contract_loaded['ast'])
all_filenames.append(contract_loaded['sourcePath'])
slither = Slither(all_contracts, args.solc, args.disable_solc_warnings, args.solc_args)
return _process(slither, detector_classes, printer_classes)
@ -240,10 +241,13 @@ def main_impl(all_detector_classes, all_printer_classes):
elif os.path.isdir(filename) or len(globbed_filenames) > 0:
extension = "*.sol" if not args.solc_ast else "*.json"
filenames = glob.glob(os.path.join(filename, extension))
if len(filenames) == 0:
if not filenames:
filenames = globbed_filenames
number_contracts = 0
results = []
if args.splitted and args.solc_ast:
print(filenames)
results = process_files(filenames, args, detector_classes, printer_classes)
for filename in filenames:
(results_tmp, number_contracts_tmp) = process(filename, args, detector_classes, printer_classes)
number_contracts += number_contracts_tmp
@ -395,6 +399,12 @@ def parse_args(detector_classes, printer_classes):
action='store_true',
default=False)
# if the json is splitted in different files
parser.add_argument('--splitted',
help=argparse.SUPPRESS,
action='store_true',
default=False)
if len(sys.argv) == 1:
parser.print_help(sys.stderr)
sys.exit(1)

Loading…
Cancel
Save