From 30bb8537b6570aa3f2da7bb1390559d3c99cb45b Mon Sep 17 00:00:00 2001 From: Thanh Ha Date: Mon, 29 Oct 2018 19:42:59 -0400 Subject: [PATCH] Refactor config sys error handler Use exception system to allow downstream users to raise their own exceptions. Change-Id: I184eadf93f101cbe96ea5a1e10406dac6c906767 Signed-off-by: Thanh Ha --- lftools/cli/config.py | 10 +++++++++- lftools/config.py | 16 +++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/lftools/cli/config.py b/lftools/cli/config.py index ad088492..29e24421 100644 --- a/lftools/cli/config.py +++ b/lftools/cli/config.py @@ -12,8 +12,10 @@ __author__ = 'Thanh Ha' import logging +import sys import click +from six.moves import configparser from lftools import config @@ -33,7 +35,13 @@ def config_sys(ctx): @click.pass_context def get_setting(ctx, section, option): """Print section or setting from config file.""" - result = config.get_setting(section, option) + try: + result = config.get_setting(section, option) + except (configparser.NoOptionError, + configparser.NoSectionError) as e: + log.error(e) + sys.exit(1) + if isinstance(result, list): for i in result: log.info('{}: {}'.format(i, config.get_setting(section, i))) diff --git a/lftools/config.py b/lftools/config.py index e4d94b59..4b969be7 100644 --- a/lftools/config.py +++ b/lftools/config.py @@ -13,7 +13,6 @@ __author__ = 'Thanh Ha' import logging -import sys from six.moves import configparser from xdg import XDG_CONFIG_HOME @@ -36,20 +35,15 @@ def get_setting(section, option=None): if option: try: return config.get(section, option) - except configparser.NoOptionError: - print(section, option) - log.error('Config option does not exist.') - sys.exit(1) - except configparser.NoSectionError: - log.error('Config section does not exist.') - sys.exit(1) + except (configparser.NoOptionError, + configparser.NoSectionError) as e: + raise e else: try: return config.options(section) - except configparser.NoSectionError: - log.error('Config section does not exist.') - sys.exit(1) + except configparser.NoSectionError as e: + raise e def set_setting(section, option, value): -- 2.16.6