diff --git a/chatmastermind/configuration.py b/chatmastermind/configuration.py index e63b750..4d64dab 100644 --- a/chatmastermind/configuration.py +++ b/chatmastermind/configuration.py @@ -150,6 +150,8 @@ class Config: @classmethod def from_file(cls: Type[ConfigInst], path: str) -> ConfigInst: + if not Path(path).exists(): + raise ConfigError(f"Configuration file '{path}' not found. Use 'cmm config --create' to create one.") with open(path, 'r') as f: source = yaml.load(f, Loader=yaml.FullLoader) return cls.from_dict(source) diff --git a/chatmastermind/main.py b/chatmastermind/main.py index 00b5395..3df3435 100755 --- a/chatmastermind/main.py +++ b/chatmastermind/main.py @@ -8,7 +8,7 @@ import argcomplete import argparse from pathlib import Path from typing import Any -from .configuration import Config, default_config_file +from .configuration import Config, default_config_file, ConfigError from .message import Message from .commands.question import question_cmd from .commands.tags import tags_cmd @@ -220,7 +220,11 @@ def main() -> int: if command.func == config_cmd: command.func(command) else: - config = Config.from_file(args.config) + try: + config = Config.from_file(args.config) + except ConfigError as err: + print(f"{err}") + return 1 create_directories(config) command.func(command, config)