From 628fc68af3d85fbe18dce536084c0f90bebbec0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Schoentgen?= Date: Wed, 12 Jul 2023 07:58:27 +0200 Subject: [PATCH] feat: use return error codes for easier integration in other projects --- medusa/_cli/__main__.py | 2 +- medusa/_cli/analyse.py | 34 ++++++++++++++++++---------------- medusa/_cli/transform.py | 18 +++++++++++------- 3 files changed, 30 insertions(+), 24 deletions(-) diff --git a/medusa/_cli/__main__.py b/medusa/_cli/__main__.py index a7fcd0a..3e7a82e 100644 --- a/medusa/_cli/__main__.py +++ b/medusa/_cli/__main__.py @@ -44,7 +44,7 @@ def main(): sys.tracebacklimit = 1000 try: - importlib.import_module(f"medusa._cli.{cmd}").main() + sys.exit(importlib.import_module(f"medusa._cli.{cmd}").main()) except Exception as e: tb_item = sys.exc_info()[2] traceback.print_tb(tb_item) diff --git a/medusa/_cli/analyse.py b/medusa/_cli/analyse.py index 1894924..396e233 100644 --- a/medusa/_cli/analyse.py +++ b/medusa/_cli/analyse.py @@ -17,26 +17,28 @@ """ -def main(): +def main() -> int: args = docopt(__doc__) - if args[""]: - path = args[""] - print_output = args["--print-output"] + if not (path := args[""]): + return 1 - # Get Vyper AST - vyper_ast = get_vyper_ast(path) + print_output = args["--print-output"] - # Perform analysis and format the result as a string - output_dict = analyse(vyper_ast) - formatted_analysis = format_analysis(output_dict) + # Get Vyper AST + vyper_ast = get_vyper_ast(path) - # Write to output file - if output_file := args["--output"]: - write_analysis(formatted_analysis, output_file) + # Perform analysis and format the result as a string + output_dict = analyse(vyper_ast) + formatted_analysis = format_analysis(output_dict) - # Print analysis to console - if print_output: - print(formatted_analysis) + # Write to output file + if output_file := args["--output"]: + write_analysis(formatted_analysis, output_file) - print(f"\nSuccessfully analysed {path}!") + # Print analysis to console + if print_output: + print(formatted_analysis) + + print(f"\nSuccessfully analysed {path}!") + return int(bool(output_dict)) diff --git a/medusa/_cli/transform.py b/medusa/_cli/transform.py index e01d090..556b250 100644 --- a/medusa/_cli/transform.py +++ b/medusa/_cli/transform.py @@ -12,13 +12,17 @@ """ -def main(): +def main() -> int: args = docopt(__doc__) - if args[""]: - path = args[""] + if not args[""]: + return 1 - # Get Vyper AST - vyper_ast = get_vyper_ast(path) - ast_dict = vyper_ast.to_dict() - print(json.dumps(ast_dict, indent=4, sort_keys=True)) + path = args[""] + + # Get Vyper AST + vyper_ast = get_vyper_ast(path) + ast_dict = vyper_ast.to_dict() + print(json.dumps(ast_dict, indent=4, sort_keys=True)) + + return 0