Skip to content

Commit

Permalink
properly handle bad config
Browse files Browse the repository at this point in the history
  • Loading branch information
deadc0de6 committed Oct 23, 2024
1 parent ef88de7 commit 9fe0f49
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 9 deletions.
8 changes: 4 additions & 4 deletions dotdrop/cfg_yaml.py
Original file line number Diff line number Diff line change
Expand Up @@ -1340,7 +1340,7 @@ def _load_yaml(self, path):
def _validate(self, yamldict):
"""validate entries"""
if not yamldict:
return
raise YamlException('empty config file')

# check top entries
for entry in self.top_entries:
Expand All @@ -1352,15 +1352,15 @@ def _validate(self, yamldict):
# check link_dotfile_default
if self.key_settings not in yamldict:
# no configs top entry
return
raise YamlException(f'no \"{self.key_settings}\" key found')
if not yamldict[self.key_settings]:
# configs empty
return
raise YamlException(f'empty \"{self.key_settings}\" key')

# check settings values
settings = yamldict[self.key_settings]
if self.key_settings_link_dotfile_default not in settings:
return
raise YamlException(f'no \"{self.key_settings_link_dotfile_default}\" key found')
val = settings[self.key_settings_link_dotfile_default]
if val not in self.allowed_link_val:
err = f'bad link value: {val}'
Expand Down
8 changes: 4 additions & 4 deletions dotdrop/dotdrop.py
Original file line number Diff line number Diff line change
Expand Up @@ -935,16 +935,16 @@ def main():
try:
opts = Options()
except YamlException as exc:
LOG.err(f'error (yaml): {exc}')
LOG.err(f'yaml error: {exc}')
return False
except ConfigException as exc:
LOG.err(f'error (config): {exc}')
LOG.err(f'config error: {exc}')
return False
except UndefinedException as exc:
LOG.err(f'error (deps): {exc}')
LOG.err(f'dependencies error: {exc}')
return False
except OptionsException as exc:
LOG.err(f'error (options): {exc}')
LOG.err(f'options error: {exc}')
return False

if opts.debug:
Expand Down
4 changes: 3 additions & 1 deletion dotdrop/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,14 @@ def __init__(self, args=None):
# selected profile
self.profile = self.args['--profile']
self.confpath = self._get_config_path()
if not self.confpath:
raise YamlException('no config file found')
self.confpath = os.path.abspath(self.confpath)
self.log.dbg(f'config abs path: {self.confpath}')
if not self.confpath:
raise YamlException('no config file found')
if not os.path.exists(self.confpath):
err = f'bad config file path: {self.confpath}'
err = f'config does not exist \"{self.confpath}\"'
raise YamlException(err)
self.log.dbg('#################################################')
self.log.dbg('#################### DOTDROP ####################')
Expand Down

0 comments on commit 9fe0f49

Please sign in to comment.