mirror of
https://github.com/dw-0/kiauh.git
synced 2026-05-08 10:18:18 +05:00
refactor(backup): migrate backup_printer_config_dir to BackupService and update references accordingly
This commit is contained in:
@@ -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",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user