From bcdbf41bb8a3c753f1992b99c6fea4d2935b3423 Mon Sep 17 00:00:00 2001 From: Dispsylala Date: Tue, 29 Oct 2019 22:38:41 +0000 Subject: [PATCH] Added exception handling to config.yml parsing/merging --- pwnagotchi/utils.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pwnagotchi/utils.py b/pwnagotchi/utils.py index c474ae2..7c374e3 100644 --- a/pwnagotchi/utils.py +++ b/pwnagotchi/utils.py @@ -65,12 +65,16 @@ def load_config(args): config = yaml.safe_load(fp) # load the user config - if os.path.exists(args.user_config): - with open(args.user_config) as fp: - user_config = yaml.safe_load(fp) - # if the file is empty, safe_load will return None and merge_config will boom. - if user_config: - config = merge_config(user_config, config) + try: + if os.path.exists(args.user_config): + with open(args.user_config) as fp: + user_config = yaml.safe_load(fp) + # if the file is empty, safe_load will return None and merge_config will boom. + if user_config: + config = merge_config(user_config, config) + except yaml.YAMLError as ex: + print("There was an error processing the configuration file:\n%s " % ex) + exit(1) # the very first step is to normalize the display name so we don't need dozens of if/elif around if config['ui']['display']['type'] in ('inky', 'inkyphat'):