mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-11 17:44:28 +05:00
refactor(backup): migrate backup_printer_config_dir to BackupService and update references accordingly
This commit is contained in:
@@ -14,9 +14,9 @@ from components.klipper.klipper import Klipper
|
||||
from components.moonraker.moonraker import Moonraker
|
||||
from components.webui_client.base_data import BaseWebClientConfig
|
||||
from core.logger import Logger
|
||||
from core.services.backup_service import BackupService
|
||||
from core.services.message_service import Message
|
||||
from core.types.color import Color
|
||||
from utils.common import backup_printer_config_dir
|
||||
from utils.config_utils import remove_config_section
|
||||
from utils.fs_utils import run_remove_routines
|
||||
from utils.instance_type import InstanceType
|
||||
@@ -36,7 +36,7 @@ def run_client_config_removal(
|
||||
if run_remove_routines(client_config.config_dir):
|
||||
completion_msg.text.append(f"● {client_config.display_name} removed")
|
||||
|
||||
backup_printer_config_dir()
|
||||
BackupService().backup_printer_config_dir()
|
||||
|
||||
completion_msg = remove_moonraker_config_section(
|
||||
completion_msg, client_config, mr_instances
|
||||
|
||||
@@ -25,8 +25,8 @@ from components.webui_client.client_utils import (
|
||||
)
|
||||
from core.instance_manager.instance_manager import InstanceManager
|
||||
from core.logger import Logger
|
||||
from core.services.backup_service import BackupService
|
||||
from core.settings.kiauh_settings import KiauhSettings
|
||||
from utils.common import backup_printer_config_dir
|
||||
from utils.config_utils import add_config_section, add_config_section_at_top
|
||||
from utils.fs_utils import create_symlink
|
||||
from utils.git_utils import git_clone_wrapper, git_pull_wrapper
|
||||
@@ -57,7 +57,7 @@ def install_client_config(client_data: BaseWebClient, cfg_backup=True) -> None:
|
||||
create_client_config_symlink(client_config, kl_instances)
|
||||
|
||||
if cfg_backup:
|
||||
backup_printer_config_dir()
|
||||
BackupService().backup_printer_config_dir()
|
||||
|
||||
add_config_section(
|
||||
section=f"update_manager {client_config.name}",
|
||||
|
||||
@@ -37,9 +37,10 @@ from components.webui_client.client_utils import (
|
||||
)
|
||||
from core.instance_manager.instance_manager import InstanceManager
|
||||
from core.logger import DialogType, Logger
|
||||
from core.services.backup_service import BackupService
|
||||
from core.settings.kiauh_settings import KiauhSettings
|
||||
from core.types.color import Color
|
||||
from utils.common import backup_printer_config_dir, check_install_dependencies
|
||||
from utils.common import check_install_dependencies
|
||||
from utils.config_utils import add_config_section
|
||||
from utils.fs_utils import unzip
|
||||
from utils.input_utils import get_confirm
|
||||
@@ -97,7 +98,7 @@ def install_client(
|
||||
if enable_remotemode and client.client == WebClientType.MAINSAIL:
|
||||
enable_mainsail_remotemode()
|
||||
|
||||
backup_printer_config_dir()
|
||||
BackupService().backup_printer_config_dir()
|
||||
add_config_section(
|
||||
section=f"update_manager {client.name}",
|
||||
instances=mr_instances,
|
||||
|
||||
@@ -25,8 +25,8 @@ from components.webui_client.fluidd_data import FluiddData
|
||||
from components.webui_client.mainsail_data import MainsailData
|
||||
from core.menus import Option
|
||||
from core.menus.base_menu import BaseMenu
|
||||
from core.services.backup_service import BackupService
|
||||
from core.types.color import Color
|
||||
from utils.common import backup_printer_config_dir
|
||||
|
||||
|
||||
# noinspection PyUnusedLocal
|
||||
@@ -86,7 +86,7 @@ class BackupMenu(BaseMenu):
|
||||
backup_moonraker_dir()
|
||||
|
||||
def backup_printer_config(self, **kwargs) -> None:
|
||||
backup_printer_config_dir()
|
||||
BackupService().backup_printer_config_dir()
|
||||
|
||||
def backup_moonraker_db(self, **kwargs) -> None:
|
||||
backup_moonraker_db_dir()
|
||||
|
||||
@@ -147,3 +147,43 @@ class BackupService:
|
||||
target_path=target_path,
|
||||
target_name=instance.cfg_file.name,
|
||||
)
|
||||
|
||||
def backup_printer_config_dir(self) -> None:
|
||||
instances: List[Klipper] = get_instances(Klipper)
|
||||
if not instances:
|
||||
# fallback: search for printer data directories in the user's home directory
|
||||
Logger.print_info("No Klipper instances found via systemd services.")
|
||||
Logger.print_info(
|
||||
"Attempting to find printer data directories in home directory..."
|
||||
)
|
||||
|
||||
home_dir = Path.home()
|
||||
printer_data_dirs = []
|
||||
|
||||
for pattern in ["printer_data", "printer_*_data"]:
|
||||
for data_dir in home_dir.glob(pattern):
|
||||
if data_dir.is_dir():
|
||||
printer_data_dirs.append(data_dir)
|
||||
|
||||
if not printer_data_dirs:
|
||||
Logger.print_info("Unable to find directory to backup!")
|
||||
Logger.print_info(
|
||||
"No printer data directories found in home directory."
|
||||
)
|
||||
return
|
||||
|
||||
for data_dir in printer_data_dirs:
|
||||
self.backup_directory(
|
||||
source_path=data_dir.joinpath("config"),
|
||||
target_path=data_dir.name,
|
||||
backup_name="config",
|
||||
)
|
||||
|
||||
return
|
||||
|
||||
for instance in instances:
|
||||
self.backup_directory(
|
||||
source_path=instance.base.cfg_dir,
|
||||
target_path=f"{instance.data_dir.name}",
|
||||
backup_name="config",
|
||||
)
|
||||
|
||||
@@ -14,6 +14,7 @@ from components.moonraker.moonraker import Moonraker
|
||||
from core.instance_manager.base_instance import SUFFIX_BLACKLIST
|
||||
from core.instance_manager.instance_manager import InstanceManager
|
||||
from core.logger import DialogType, Logger
|
||||
from core.services.backup_service import BackupService
|
||||
from core.submodules.simple_config_parser.src.simple_config_parser.simple_config_parser import (
|
||||
SimpleConfigParser,
|
||||
)
|
||||
@@ -32,7 +33,6 @@ from extensions.obico.moonraker_obico import (
|
||||
MoonrakerObico,
|
||||
)
|
||||
from utils.common import (
|
||||
backup_printer_config_dir,
|
||||
check_install_dependencies,
|
||||
moonraker_exists,
|
||||
)
|
||||
@@ -123,7 +123,7 @@ class ObicoExtension(BaseExtension):
|
||||
|
||||
cmd_sysctl_manage("daemon-reload")
|
||||
|
||||
backup_printer_config_dir()
|
||||
BackupService().backup_printer_config_dir()
|
||||
|
||||
# add to klippers config
|
||||
self._patch_printer_cfg(kl_instances)
|
||||
@@ -171,7 +171,7 @@ class ObicoExtension(BaseExtension):
|
||||
self._remove_obico_instances(ob_instances)
|
||||
self._remove_obico_dir()
|
||||
self._remove_obico_env()
|
||||
backup_printer_config_dir()
|
||||
BackupService().backup_printer_config_dir()
|
||||
remove_config_section(f"include {OBICO_MACROS_CFG_NAME}", kl_instances)
|
||||
remove_config_section(f"include {OBICO_UPDATE_CFG_NAME}", mr_instances)
|
||||
Logger.print_dialog(
|
||||
|
||||
@@ -11,11 +11,12 @@ from typing import List
|
||||
from components.moonraker.moonraker import Moonraker
|
||||
from core.instance_manager.instance_manager import InstanceManager
|
||||
from core.logger import DialogType, Logger
|
||||
from core.services.backup_service import BackupService
|
||||
from core.submodules.simple_config_parser.src.simple_config_parser.simple_config_parser import (
|
||||
SimpleConfigParser,
|
||||
)
|
||||
from extensions.base_extension import BaseExtension
|
||||
from utils.common import backup_printer_config_dir, moonraker_exists
|
||||
from utils.common import moonraker_exists
|
||||
from utils.input_utils import get_confirm
|
||||
|
||||
|
||||
@@ -112,10 +113,10 @@ class SimplyPrintExtension(BaseExtension):
|
||||
continue
|
||||
|
||||
if is_install and not scp.has_section("simplyprint"):
|
||||
backup_printer_config_dir()
|
||||
BackupService().backup_printer_config_dir()
|
||||
scp.add_section(section)
|
||||
elif not is_install and scp.has_section("simplyprint"):
|
||||
backup_printer_config_dir()
|
||||
BackupService().backup_printer_config_dir()
|
||||
scp.remove_section(section)
|
||||
scp.write_file(moonraker.cfg_file)
|
||||
patched_files.append(moonraker.cfg_file)
|
||||
|
||||
@@ -14,13 +14,11 @@ from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Dict, List, Literal, Set
|
||||
|
||||
from components.klipper.klipper import Klipper
|
||||
from components.moonraker.moonraker import Moonraker
|
||||
from core.constants import (
|
||||
GLOBAL_DEPS,
|
||||
)
|
||||
from core.logger import DialogType, Logger
|
||||
from core.services.backup_service import BackupService
|
||||
from core.types.color import Color
|
||||
from core.types.component_status import ComponentStatus, StatusCode
|
||||
from utils.git_utils import (
|
||||
@@ -151,47 +149,6 @@ def get_install_status(
|
||||
)
|
||||
|
||||
|
||||
def backup_printer_config_dir() -> None:
|
||||
instances: List[Klipper] = get_instances(Klipper)
|
||||
svc = BackupService()
|
||||
|
||||
if not instances:
|
||||
# fallback: search for printer data directories in the user's home directory
|
||||
Logger.print_info("No Klipper instances found via systemd services.")
|
||||
Logger.print_info(
|
||||
"Attempting to find printer data directories in home directory..."
|
||||
)
|
||||
|
||||
home_dir = Path.home()
|
||||
printer_data_dirs = []
|
||||
|
||||
for pattern in ["printer_data", "printer_*_data"]:
|
||||
for data_dir in home_dir.glob(pattern):
|
||||
if data_dir.is_dir():
|
||||
printer_data_dirs.append(data_dir)
|
||||
|
||||
if not printer_data_dirs:
|
||||
Logger.print_info("Unable to find directory to backup!")
|
||||
Logger.print_info("No printer data directories found in home directory.")
|
||||
return
|
||||
|
||||
for data_dir in printer_data_dirs:
|
||||
svc.backup_directory(
|
||||
source_path=data_dir.joinpath("config"),
|
||||
target_path=data_dir.name,
|
||||
backup_name="config",
|
||||
)
|
||||
|
||||
return
|
||||
|
||||
for instance in instances:
|
||||
svc.backup_directory(
|
||||
source_path=instance.base.cfg_dir,
|
||||
target_path=f"{instance.data_dir.name}",
|
||||
backup_name="config",
|
||||
)
|
||||
|
||||
|
||||
def moonraker_exists(name: str = "") -> List[Moonraker]:
|
||||
"""
|
||||
Helper method to check if a Moonraker instance exists
|
||||
|
||||
Reference in New Issue
Block a user