From 14132fc34b6d8ae977e944e380ab3d773e7b4a01 Mon Sep 17 00:00:00 2001 From: dw-0 Date: Sat, 23 Dec 2023 17:21:50 +0100 Subject: [PATCH] refactor(ConfigManager): automatically read config upon ConfigManager instance init Signed-off-by: Dominik Willner --- kiauh/core/config_manager/config_manager.py | 6 +++++- kiauh/modules/klipper/klipper_setup.py | 4 ---- kiauh/modules/klipper/klipper_utils.py | 1 - kiauh/modules/mainsail/mainsail_remove.py | 2 -- kiauh/modules/mainsail/mainsail_setup.py | 3 --- kiauh/modules/moonraker/moonraker.py | 1 - kiauh/modules/moonraker/moonraker_setup.py | 4 ---- kiauh/modules/moonraker/moonraker_utils.py | 7 +++---- 8 files changed, 8 insertions(+), 20 deletions(-) diff --git a/kiauh/core/config_manager/config_manager.py b/kiauh/core/config_manager/config_manager.py index 4470575..24858c8 100644 --- a/kiauh/core/config_manager/config_manager.py +++ b/kiauh/core/config_manager/config_manager.py @@ -10,6 +10,7 @@ # ======================================================================= # import configparser +from pathlib import Path from typing import Union from kiauh.utils.logger import Logger @@ -21,6 +22,9 @@ class ConfigManager: self.config_file = cfg_file self.config = CustomConfigParser() + if Path(cfg_file).is_file(): + self.read_config() + def read_config(self) -> None: if not self.config_file: Logger.print_error("Unable to read config file. File not found.") @@ -32,7 +36,7 @@ class ConfigManager: with open(self.config_file, "w") as cfg: self.config.write(cfg) - def get_value(self, section: str, key: str, silent=False) -> Union[str, bool, None]: + def get_value(self, section: str, key: str, silent=True) -> Union[str, bool, None]: if not self.config.has_section(section): if not silent: log = f"Section not defined. Unable to read section: [{section}]." diff --git a/kiauh/modules/klipper/klipper_setup.py b/kiauh/modules/klipper/klipper_setup.py index 78bc282..01c3a94 100644 --- a/kiauh/modules/klipper/klipper_setup.py +++ b/kiauh/modules/klipper/klipper_setup.py @@ -145,8 +145,6 @@ def install_klipper( def setup_klipper_prerequesites() -> None: cm = ConfigManager(cfg_file=KIAUH_CFG) - cm.read_config() - repo = str(cm.get_value("klipper", "repository_url") or DEFAULT_KLIPPER_REPO_URL) branch = str(cm.get_value("klipper", "branch") or "master") @@ -265,8 +263,6 @@ def update_klipper() -> None: return cm = ConfigManager(cfg_file=KIAUH_CFG) - cm.read_config() - if cm.get_value("kiauh", "backup_before_update"): backup_manager = BackupManager(source=KLIPPER_DIR, backup_name="klipper") backup_manager.backup() diff --git a/kiauh/modules/klipper/klipper_utils.py b/kiauh/modules/klipper/klipper_utils.py index e3439af..26d20a6 100644 --- a/kiauh/modules/klipper/klipper_utils.py +++ b/kiauh/modules/klipper/klipper_utils.py @@ -209,7 +209,6 @@ def create_example_printer_cfg(instance: Klipper) -> None: return cm = ConfigManager(target) - cm.read_config() cm.set_value("virtual_sdcard", "path", instance.gcodes_dir) cm.write_config() Logger.print_ok(f"Example printer.cfg created in '{instance.cfg_dir}'") diff --git a/kiauh/modules/mainsail/mainsail_remove.py b/kiauh/modules/mainsail/mainsail_remove.py index d09fdb6..6e80fc1 100644 --- a/kiauh/modules/mainsail/mainsail_remove.py +++ b/kiauh/modules/mainsail/mainsail_remove.py @@ -106,7 +106,6 @@ def remove_updater_section(name: str) -> None: continue cm = ConfigManager(instance.cfg_file) - cm.read_config() if not cm.config.has_section(name): Logger.print_info("Section not present. Skipped ...") continue @@ -153,7 +152,6 @@ def remove_printer_cfg_include() -> None: continue cm = ConfigManager(instance.cfg_file) - cm.read_config() if not cm.config.has_section("include mainsail.cfg"): Logger.print_info("Section not present. Skipped ...") continue diff --git a/kiauh/modules/mainsail/mainsail_setup.py b/kiauh/modules/mainsail/mainsail_setup.py index b8e6615..8de5f50 100644 --- a/kiauh/modules/mainsail/mainsail_setup.py +++ b/kiauh/modules/mainsail/mainsail_setup.py @@ -91,7 +91,6 @@ def run_mainsail_installation() -> None: install_ms_config = get_confirm(question, allow_go_back=False) cm = ConfigManager(cfg_file=KIAUH_CFG) - cm.read_config() default_port = cm.get_value("mainsail", "default_port") mainsail_port = default_port if default_port else 80 if not default_port: @@ -214,7 +213,6 @@ def patch_moonraker_conf( return cm = ConfigManager(cfg_file) - cm.read_config() if cm.config.has_section(section_name): Logger.print_info("Section already exist. Skipped ...") return @@ -238,7 +236,6 @@ def patch_printer_config(klipper_instances: List[Klipper]) -> None: return cm = ConfigManager(cfg_file) - cm.read_config() if cm.config.has_section("include mainsail.cfg"): Logger.print_info("Section already exist. Skipped ...") return diff --git a/kiauh/modules/moonraker/moonraker.py b/kiauh/modules/moonraker/moonraker.py index df648cf..d3dbfc6 100644 --- a/kiauh/modules/moonraker/moonraker.py +++ b/kiauh/modules/moonraker/moonraker.py @@ -156,7 +156,6 @@ class Moonraker(BaseInstance): return None cm = ConfigManager(cfg_file=self.cfg_file) - cm.read_config() port = cm.get_value("server", "port") return int(port) if port is not None else port diff --git a/kiauh/modules/moonraker/moonraker_setup.py b/kiauh/modules/moonraker/moonraker_setup.py index cde127e..cfddacd 100644 --- a/kiauh/modules/moonraker/moonraker_setup.py +++ b/kiauh/modules/moonraker/moonraker_setup.py @@ -150,8 +150,6 @@ def install_moonraker( def setup_moonraker_prerequesites() -> None: cm = ConfigManager(cfg_file=KIAUH_CFG) - cm.read_config() - repo = str( cm.get_value("moonraker", "repository_url") or DEFAULT_MOONRAKER_REPO_URL ) @@ -291,8 +289,6 @@ def update_moonraker() -> None: return cm = ConfigManager(cfg_file=KIAUH_CFG) - cm.read_config() - if cm.get_value("kiauh", "backup_before_update"): backup_manager = BackupManager(source=MOONRAKER_DIR, backup_name="moonraker") backup_manager.backup() diff --git a/kiauh/modules/moonraker/moonraker_utils.py b/kiauh/modules/moonraker/moonraker_utils.py index 2c08f5e..ce3d99e 100644 --- a/kiauh/modules/moonraker/moonraker_utils.py +++ b/kiauh/modules/moonraker/moonraker_utils.py @@ -41,9 +41,6 @@ def create_example_moonraker_conf( Logger.print_error(f"Unable to create example moonraker.conf:\n{e}") return - cm = ConfigManager(target) - cm.read_config() - ports = [ ports_map.get(instance) for instance in ports_map @@ -61,9 +58,11 @@ def create_example_moonraker_conf( ports_map[instance.suffix] = port - uds = f"{instance.comms_dir}/klippy.sock" ip = get_ipv4_addr().split(".")[:2] ip.extend(["0", "0/16"]) + uds = f"{instance.comms_dir}/klippy.sock" + + cm = ConfigManager(target) trusted_clients = f"\n{'.'.join(ip)}" trusted_clients += cm.get_value("authorization", "trusted_clients")