refactor(klipper): add existing client configs to example config upon creation

Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
dw-0
2024-03-03 11:04:06 +01:00
parent 8df75dc8d0
commit bd1aa1ae2b
4 changed files with 44 additions and 16 deletions

View File

@@ -11,6 +11,9 @@
from pathlib import Path
from components.webui_client.client_config.client_config_setup import (
get_existing_client_config,
)
from kiauh import KIAUH_CFG
from components.klipper import (
EXIT_KLIPPER_SETUP,
@@ -180,5 +183,7 @@ def create_klipper_instance(name: str, create_example_cfg: bool) -> None:
kl_im.create_instance()
kl_im.enable_instance()
if create_example_cfg:
create_example_printer_cfg(new_instance)
# if a client-config is installed, include it in the new example cfg
client_configs = get_existing_client_config()
create_example_printer_cfg(new_instance, client_configs)
kl_im.start_instance()

View File

@@ -16,7 +16,7 @@ import shutil
import subprocess
import textwrap
from pathlib import Path
from typing import List, Union, Literal, Dict
from typing import List, Union, Literal, Dict, Optional
from components.klipper import (
MODULE_PATH,
@@ -33,6 +33,7 @@ from components.klipper.klipper_dialogs import (
)
from components.moonraker.moonraker import Moonraker
from components.moonraker.moonraker_utils import moonraker_to_multi_conversion
from components.webui_client import ClientData
from core.backup_manager.backup_manager import BackupManager
from core.config_manager.config_manager import ConfigManager
from core.instance_manager.base_instance import BaseInstance
@@ -261,7 +262,9 @@ def get_highest_index(instance_list: List[Klipper]) -> int:
return max(indices)
def create_example_printer_cfg(instance: Klipper) -> None:
def create_example_printer_cfg(
instance: Klipper, client_configs: Optional[List[ClientData]] = None
) -> None:
Logger.print_status(f"Creating example printer.cfg in '{instance.cfg_dir}'")
if instance.cfg_file.is_file():
Logger.print_info(f"'{instance.cfg_file}' already exists.")
@@ -277,7 +280,15 @@ def create_example_printer_cfg(instance: Klipper) -> None:
cm = ConfigManager(target)
cm.set_value("virtual_sdcard", "path", str(instance.gcodes_dir))
# include existing client configs in the example config
if client_configs is not None and len(client_configs) > 0:
for c in client_configs:
section = c.get("client_config").get("printer_cfg_section")
cm.config.add_section(section=section)
cm.write_config()
Logger.print_ok(f"Example printer.cfg created in '{instance.cfg_dir}'")