From 9c6b8971b630952b6a28c4ae3dc8f26515abb25a Mon Sep 17 00:00:00 2001 From: Joscha Date: Sat, 7 Dec 2019 22:17:39 +0000 Subject: [PATCH] Export a (working!) default config file --- evering/__main__.py | 9 ++++++++- evering/config.py | 10 +++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/evering/__main__.py b/evering/__main__.py index 566a53a..2ee983e 100644 --- a/evering/__main__.py +++ b/evering/__main__.py @@ -85,13 +85,20 @@ def run(args: Any) -> None: def main() -> None: parser = argparse.ArgumentParser() - parser.add_argument("-c", "--config-file") + parser.add_argument("-c", "--config-file", type=Path) parser.add_argument("-v", "--verbose", action="store_true") + parser.add_argument("--export-default-config", type=Path) args = parser.parse_args() level = logging.DEBUG if args.verbose else logging.INFO logging.basicConfig(level=level, style=LOG_STYLE, format=LOG_FORMAT) + if args.export_default_config is not None: + logger.info(f"Exporting default config to {style_path(args.export_default_config)}") + with open(args.export_default_config, "w") as f: + f.write(DEFAULT_CONFIG.to_config_file()) + return + try: run(args) except CatastrophicError as e: diff --git a/evering/config.py b/evering/config.py index 8e746c6..02533e0 100644 --- a/evering/config.py +++ b/evering/config.py @@ -81,12 +81,16 @@ class DefaultConfig: for name in sorted(self._values): value = self._values[name] + line: str if value.has_constant_value: - lines.append(f"{name} = {value.value!r} # {value.description}\n") + line = f"{name} = {value.value!r}" else: - lines.append(f"# {name} : {value.description}\n") + line = f"# {name}" - return "".join(lines) + line = f"{line:<32} # {value.description}" + lines.append(line) + + return "\n".join(lines) + "\n" DEFAULT_CONFIG = DefaultConfig()