From d5ec761f5f425fa4c9d359e5e327980d85ad77e9 Mon Sep 17 00:00:00 2001 From: dw-0 Date: Wed, 19 Jun 2024 21:17:04 +0200 Subject: [PATCH] refactor: use SimpleConfigParser and finalize the code Signed-off-by: Dominik Willner --- kiauh/extensions/obico/moonraker_obico.py | 12 ++++--- .../obico/moonraker_obico_extension.py | 32 +++++++++++++------ kiauh/utils/config_utils.py | 2 +- 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/kiauh/extensions/obico/moonraker_obico.py b/kiauh/extensions/obico/moonraker_obico.py index 83418ec..d82d576 100644 --- a/kiauh/extensions/obico/moonraker_obico.py +++ b/kiauh/extensions/obico/moonraker_obico.py @@ -12,6 +12,9 @@ from subprocess import DEVNULL, CalledProcessError, run from typing import List from core.instance_manager.base_instance import BaseInstance +from core.submodules.simple_config_parser.src.simple_config_parser.simple_config_parser import ( + SimpleConfigParser, +) from utils.constants import SYSTEMD from utils.logger import Logger @@ -160,8 +163,9 @@ class MoonrakerObico(BaseInstance): return env_file_content def _check_link_status(self) -> bool: - from core.config_manager.config_manager import ConfigManager + if not self.cfg_file.exists(): + return False - cm = ConfigManager(self.cfg_file) - - return cm.get_value("server", "auth_token") is not None + scp = SimpleConfigParser() + scp.read(self.cfg_file) + return scp.get("server", "auth_token", None) is not None diff --git a/kiauh/extensions/obico/moonraker_obico_extension.py b/kiauh/extensions/obico/moonraker_obico_extension.py index cf0bf6a..720df1e 100644 --- a/kiauh/extensions/obico/moonraker_obico_extension.py +++ b/kiauh/extensions/obico/moonraker_obico_extension.py @@ -12,8 +12,10 @@ from typing import List from components.klipper.klipper import Klipper from components.moonraker.moonraker import Moonraker -from core.config_manager.config_manager import ConfigManager from core.instance_manager.instance_manager import InstanceManager +from core.submodules.simple_config_parser.src.simple_config_parser.simple_config_parser import ( + SimpleConfigParser, +) from extensions.base_extension import BaseExtension from extensions.obico.moonraker_obico import ( OBICO_DIR, @@ -122,7 +124,7 @@ class ObicoExtension(BaseExtension): ) except Exception as e: - Logger.print_error(f"Error during Obico for Klipper installation: {e}") + Logger.print_error(f"Error during Obico for Klipper installation:\n{e}") def update_extension(self, **kwargs) -> None: Logger.print_status("Updating Obico for Klipper ...") @@ -137,7 +139,7 @@ class ObicoExtension(BaseExtension): Logger.print_ok("Obico for Klipper successfully updated!") except Exception as e: - Logger.print_error(f"Error during Obico for Klipper update: {e}") + Logger.print_error(f"Error during Obico for Klipper update:\n{e}") def remove_extension(self, **kwargs) -> None: Logger.print_status("Removing Obico for Klipper ...") @@ -163,7 +165,7 @@ class ObicoExtension(BaseExtension): ) except Exception as e: - Logger.print_error(f"Error during Obico for Klipper removal: {e}") + Logger.print_error(f"Error during Obico for Klipper removal:\n{e}") def _obico_server_url_prompt(self) -> None: Logger.print_dialog( @@ -243,9 +245,18 @@ class ObicoExtension(BaseExtension): f"Obico macros in {moonraker.cfg_dir} already exists! Skipped ..." ) - def _create_obico_cfg(self, current_instance, moonraker) -> None: + def _create_obico_cfg( + self, current_instance: MoonrakerObico, moonraker: Moonraker + ) -> None: cfg_template = OBICO_DIR.joinpath("moonraker-obico.cfg.sample") cfg_target_file = current_instance.cfg_file + + if not cfg_template.exists(): + Logger.print_error( + f"Obico config template file {cfg_target_file} does not exist!" + ) + return + if not cfg_target_file.exists(): run(["cp", cfg_template, cfg_target_file], check=True) self._patch_obico_cfg(moonraker, current_instance) @@ -255,11 +266,12 @@ class ObicoExtension(BaseExtension): ) def _patch_obico_cfg(self, moonraker: Moonraker, obico: MoonrakerObico) -> None: - cm = ConfigManager(obico.cfg_file) - cm.set_value("server", "url", self.server_url) - cm.set_value("moonraker", "port", str(moonraker.port)) - cm.set_value("logging", "path", str(obico.log)) - cm.write_config() + scp = SimpleConfigParser() + scp.read(obico.cfg_file) + scp.set("server", "url", self.server_url) + scp.set("moonraker", "port", str(moonraker.port)) + scp.set("logging", "path", str(obico.log)) + scp.write(obico.cfg_file) def _patch_obico_macros(self, klipper: List[Klipper]) -> None: add_config_section( diff --git a/kiauh/utils/config_utils.py b/kiauh/utils/config_utils.py index 2a9d829..dddbcac 100644 --- a/kiauh/utils/config_utils.py +++ b/kiauh/utils/config_utils.py @@ -43,7 +43,7 @@ def add_config_section( scp.add_section(section) if options is not None: - for option in options: + for option in reversed(options): scp.set(section, option[0], option[1]) scp.write(cfg_file)