mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-26 17:23:35 +05:00
feat: implement backup menu and backup methods for existing components
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
@@ -11,10 +11,13 @@
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from kiauh.core.backup_manager import BACKUP_ROOT_DIR
|
||||
|
||||
MODULE_PATH = Path(__file__).resolve().parent
|
||||
|
||||
KLIPPER_DIR = Path.home().joinpath("klipper")
|
||||
KLIPPER_ENV_DIR = Path.home().joinpath("klippy-env")
|
||||
KLIPPER_BACKUP_DIR = BACKUP_ROOT_DIR.joinpath("klipper-backups")
|
||||
KLIPPER_REQUIREMENTS_TXT = KLIPPER_DIR.joinpath("scripts/klippy-requirements.txt")
|
||||
DEFAULT_KLIPPER_REPO_URL = "https://github.com/Klipper3D/klipper"
|
||||
|
||||
|
||||
@@ -12,16 +12,13 @@
|
||||
from pathlib import Path
|
||||
|
||||
from kiauh import KIAUH_CFG
|
||||
from kiauh.core.backup_manager.backup_manager import BackupManager
|
||||
from kiauh.core.config_manager.config_manager import ConfigManager
|
||||
from kiauh.core.instance_manager.instance_manager import InstanceManager
|
||||
from kiauh.components.klipper import (
|
||||
EXIT_KLIPPER_SETUP,
|
||||
DEFAULT_KLIPPER_REPO_URL,
|
||||
KLIPPER_DIR,
|
||||
KLIPPER_ENV_DIR,
|
||||
KLIPPER_REQUIREMENTS_TXT,
|
||||
)
|
||||
)
|
||||
from kiauh.components.klipper.klipper import Klipper
|
||||
from kiauh.components.klipper.klipper_dialogs import print_update_warn_dialog
|
||||
from kiauh.components.klipper.klipper_utils import (
|
||||
@@ -35,9 +32,12 @@ from kiauh.components.klipper.klipper_utils import (
|
||||
check_is_single_to_multi_conversion,
|
||||
update_name_scheme,
|
||||
handle_instance_naming,
|
||||
)
|
||||
from kiauh.core.repo_manager.repo_manager import RepoManager
|
||||
backup_klipper_dir,
|
||||
)
|
||||
from kiauh.components.moonraker.moonraker import Moonraker
|
||||
from kiauh.core.config_manager.config_manager import ConfigManager
|
||||
from kiauh.core.instance_manager.instance_manager import InstanceManager
|
||||
from kiauh.core.repo_manager.repo_manager import RepoManager
|
||||
from kiauh.utils.input_utils import get_confirm
|
||||
from kiauh.utils.logger import Logger
|
||||
from kiauh.utils.system_utils import (
|
||||
@@ -46,7 +46,7 @@ from kiauh.utils.system_utils import (
|
||||
install_python_requirements,
|
||||
update_system_package_lists,
|
||||
install_system_packages,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def install_klipper() -> None:
|
||||
@@ -149,9 +149,7 @@ def update_klipper() -> None:
|
||||
|
||||
cm = ConfigManager(cfg_file=KIAUH_CFG)
|
||||
if cm.get_value("kiauh", "backup_before_update"):
|
||||
bm = BackupManager()
|
||||
bm.backup_directory("klipper", KLIPPER_DIR)
|
||||
bm.backup_directory("klippy-env", KLIPPER_ENV_DIR)
|
||||
backup_klipper_dir()
|
||||
|
||||
instance_manager = InstanceManager(Klipper)
|
||||
instance_manager.stop_all_instance()
|
||||
|
||||
@@ -9,31 +9,36 @@
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license #
|
||||
# ======================================================================= #
|
||||
|
||||
import grp
|
||||
import os
|
||||
import re
|
||||
import grp
|
||||
import shutil
|
||||
import subprocess
|
||||
import textwrap
|
||||
from pathlib import Path
|
||||
|
||||
from typing import List, Union, Literal, Dict
|
||||
|
||||
from kiauh.core.config_manager.config_manager import ConfigManager
|
||||
from kiauh.core.instance_manager.base_instance import BaseInstance
|
||||
from kiauh.core.instance_manager.instance_manager import InstanceManager
|
||||
from kiauh.core.instance_manager.name_scheme import NameScheme
|
||||
from kiauh.core.repo_manager.repo_manager import RepoManager
|
||||
from kiauh.components.klipper import MODULE_PATH, KLIPPER_DIR, KLIPPER_ENV_DIR
|
||||
from kiauh.components.klipper import (
|
||||
MODULE_PATH,
|
||||
KLIPPER_DIR,
|
||||
KLIPPER_ENV_DIR,
|
||||
KLIPPER_BACKUP_DIR,
|
||||
)
|
||||
from kiauh.components.klipper.klipper import Klipper
|
||||
from kiauh.components.klipper.klipper_dialogs import (
|
||||
print_missing_usergroup_dialog,
|
||||
print_instance_overview,
|
||||
print_select_instance_count_dialog,
|
||||
print_select_custom_name_dialog,
|
||||
)
|
||||
)
|
||||
from kiauh.components.moonraker.moonraker import Moonraker
|
||||
from kiauh.components.moonraker.moonraker_utils import moonraker_to_multi_conversion
|
||||
from kiauh.core.backup_manager.backup_manager import BackupManager
|
||||
from kiauh.core.config_manager.config_manager import ConfigManager
|
||||
from kiauh.core.instance_manager.base_instance import BaseInstance
|
||||
from kiauh.core.instance_manager.instance_manager import InstanceManager
|
||||
from kiauh.core.instance_manager.name_scheme import NameScheme
|
||||
from kiauh.core.repo_manager.repo_manager import RepoManager
|
||||
from kiauh.utils.common import get_install_status_common
|
||||
from kiauh.utils.constants import CURRENT_USER
|
||||
from kiauh.utils.input_utils import get_confirm, get_string_input, get_number_input
|
||||
@@ -276,3 +281,9 @@ def create_example_printer_cfg(instance: Klipper) -> None:
|
||||
cm.set_value("virtual_sdcard", "path", str(instance.gcodes_dir))
|
||||
cm.write_config()
|
||||
Logger.print_ok(f"Example printer.cfg created in '{instance.cfg_dir}'")
|
||||
|
||||
|
||||
def backup_klipper_dir() -> None:
|
||||
bm = BackupManager()
|
||||
bm.backup_directory("klipper", source=KLIPPER_DIR, target=KLIPPER_BACKUP_DIR)
|
||||
bm.backup_directory("klippy-env", source=KLIPPER_ENV_DIR, target=KLIPPER_BACKUP_DIR)
|
||||
|
||||
Reference in New Issue
Block a user