diff --git a/grawlix/__main__.py b/grawlix/__main__.py index ad63a10..2d58d3f 100644 --- a/grawlix/__main__.py +++ b/grawlix/__main__.py @@ -1,5 +1,5 @@ from .book import Book, Series -from .config import load_config, Config, SourceConfig +from .config import load_config, Config, SourceConfig, get_config_path from .exceptions import SourceNotAuthenticated, GrawlixError from .sources import load_source, Source from .output import download_book @@ -87,8 +87,18 @@ async def authenticate(source: Source, config: Config, options): raise SourceNotAuthenticated +def run_debug_commands(options) -> None: + """ + Run optional debug commands if argument is set + """ + if options.print_config_path: + config_path = get_config_path() + print(config_path) + + async def main() -> None: args = arguments.parse_arguments() + run_debug_commands(args) config = load_config() logging.debug_mode = args.debug urls = get_urls(args) diff --git a/grawlix/arguments.py b/grawlix/arguments.py index c4a52c9..2958df9 100644 --- a/grawlix/arguments.py +++ b/grawlix/arguments.py @@ -14,6 +14,12 @@ def parse_arguments() -> argparse.Namespace: action = "version", version = f"grawlix {__version__}" ) + parser.add_argument( + '--print-config-path', + action = "store_true", + help = "Print config path", + dest = "print_config_path" + ) # Basics parser.add_argument( 'urls', diff --git a/grawlix/config.py b/grawlix/config.py index ce73133..65bf60d 100644 --- a/grawlix/config.py +++ b/grawlix/config.py @@ -19,14 +19,20 @@ class Config: sources: dict[str, SourceConfig] +def get_config_path() -> str: + """Return the path of the config file""" + config_dir = appdirs.user_config_dir("grawlix", "jo1gi") + config_file = os.path.join(config_dir, "grawlix.toml") + return config_file + + def load_config() -> Config: """ Load config from disk :returns: Config object """ - config_dir = appdirs.user_config_dir("grawlix", "jo1gi") - config_file = os.path.join(config_dir, "grawlix.toml") + config_file = get_config_path() if os.path.exists(config_file): with open(config_file, "rb") as f: config_dict = tomli.load(f)