From 08485f255a5f1b59984ebb0e9e4913099bd5c608 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Wed, 1 Jun 2022 17:58:06 +0200 Subject: [PATCH] add return codes --- openwebrx.py | 3 ++- owrx/__main__.py | 19 ++++++++++++------- owrx/admin/__init__.py | 11 +++++------ owrx/admin/commands.py | 6 +++--- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/openwebrx.py b/openwebrx.py index 4232fae..6aa13dd 100755 --- a/openwebrx.py +++ b/openwebrx.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 +import sys from owrx.__main__ import main if __name__ == "__main__": - main() + sys.exit(main()) diff --git a/owrx/__main__.py b/owrx/__main__.py index d25079c..1bf8f4b 100644 --- a/owrx/__main__.py +++ b/owrx/__main__.py @@ -57,12 +57,15 @@ def main(): if args.version: print("OpenWebRX version {version}".format(version=openwebrx_version)) - elif args.module == "admin": - run_admin_action(adminparser, args) - elif args.module == "config": - run_admin_action(configparser, args) - else: - start_receiver() + return 0 + + if args.module == "admin": + return run_admin_action(adminparser, args) + + if args.module == "config": + return run_admin_action(configparser, args) + + return start_receiver() def start_receiver(): @@ -100,7 +103,7 @@ Support and info: https://groups.io/g/openwebrx description = featureDetector.get_requirement_description(f) if description: logger.error("description for %s:\n%s", f, description) - return + return 1 # Get error messages about unknown / unavailable features as soon as possible # start up "always-on" sources right away @@ -119,3 +122,5 @@ Support and info: https://groups.io/g/openwebrx SdrService.stopAllSources() ReportingEngine.stopAll() DecoderQueue.stopAll() + + return 0 diff --git a/owrx/admin/__init__.py b/owrx/admin/__init__.py index 276d17f..30b64bb 100644 --- a/owrx/admin/__init__.py +++ b/owrx/admin/__init__.py @@ -46,15 +46,14 @@ def run_admin_action(parser, args): else: if not hasattr(args, "silent") or not args.silent: parser.print_help() - sys.exit(1) - sys.exit(0) + return 1 + return 0 try: - command.run(args) + return command.run(args) except Exception: if not hasattr(args, "silent") or not args.silent: print("Error running command:") traceback.print_exc() - sys.exit(1) - sys.exit(0) - + return 1 + return 0 diff --git a/owrx/admin/commands.py b/owrx/admin/commands.py index 8eca85e..b6215c3 100644 --- a/owrx/admin/commands.py +++ b/owrx/admin/commands.py @@ -30,8 +30,7 @@ class UserCommand(Command, metaclass=ABCMeta): password = getpass("Please enter the new password for {username}: ".format(username=username)) confirm = getpass("Please confirm the new password: ") if password != confirm: - print("ERROR: Password mismatch.") - sys.exit(1) + raise ValueError("Password mismatch") generated = False return password, generated @@ -108,8 +107,9 @@ class HasUser(Command): if args.user in userList: if not args.silent: print('User "{name}" exists.'.format(name=args.user)) + return 0 else: if not args.silent: print('User "{name}" does not exist.'.format(name=args.user)) # in bash, a return code > 0 is interpreted as "false" - sys.exit(1) + return 1