From b8ab3d5d7b5673e3b1e2f07d0428f085bf806bfd Mon Sep 17 00:00:00 2001 From: Julien Fortin Date: Tue, 12 May 2020 18:44:15 +0200 Subject: [PATCH] main: catch ArgvParseError and don't display traceback Signed-off-by: Julien Fortin --- ifupdown2/__main__.py | 7 +++++-- ifupdown2/lib/log.py | 3 +++ ifupdown2/lib/status.py | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ifupdown2/__main__.py b/ifupdown2/__main__.py index 76b5183..073a14b 100755 --- a/ifupdown2/__main__.py +++ b/ifupdown2/__main__.py @@ -46,7 +46,7 @@ try: from ifupdown2.lib.exceptions import ExitWithStatus, ExitWithStatusAndError from ifupdown2.ifupdown.client import Client - from ifupdown2.ifupdown.exceptions import ArgvParseHelp + from ifupdown2.ifupdown.exceptions import ArgvParseHelp, ArgvParseError except: import ifupdown.config as config @@ -55,7 +55,7 @@ except: from lib.exceptions import ExitWithStatus, ExitWithStatusAndError from ifupdown.client import Client - from ifupdown.exceptions import ArgvParseHelp + from ifupdown.exceptions import ArgvParseHelp, ArgvParseError def daemon_mode(): @@ -92,6 +92,9 @@ def stand_alone(): try: ifupdown2.parse_argv(sys.argv) LogManager.get_instance().start_standalone_logging(ifupdown2.args) + except ArgvParseError as e: + LogManager.get_instance().root_logger().error(str(e)) + return Status.Client.STATUS_ARGV_ERROR except ArgvParseHelp: # on --help parse_args raises SystemExit, we catch it and raise a # custom exception ArgvParseHelp to return 0 diff --git a/ifupdown2/lib/log.py b/ifupdown2/lib/log.py index 5741900..d3580b1 100644 --- a/ifupdown2/lib/log.py +++ b/ifupdown2/lib/log.py @@ -228,3 +228,6 @@ class LogManager: def write(self, msg): root_logger.info(msg) + + def root_logger(self): + return self.__root_logger diff --git a/ifupdown2/lib/status.py b/ifupdown2/lib/status.py index 3ce9f05..cda5ff9 100644 --- a/ifupdown2/lib/status.py +++ b/ifupdown2/lib/status.py @@ -38,6 +38,8 @@ class Status(object): STATUS_NLERROR = 96 STATUS_EXCEPTION_MAIN = 99 + STATUS_ARGV_ERROR = 90 + class Daemon(object): STATUS_SUCCESS = 0 STATUS_INIT = 101