From be805c169b0d5974c4e7f5fd16d1595087592448 Mon Sep 17 00:00:00 2001 From: dw-0 Date: Sun, 12 Nov 2023 01:13:39 +0100 Subject: [PATCH] feat(klipper): allow keeping klipper and klipper-env dir during uninstall Signed-off-by: Dominik Willner --- kiauh/modules/klipper/klipper_setup.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/kiauh/modules/klipper/klipper_setup.py b/kiauh/modules/klipper/klipper_setup.py index 3e612aa..c4a90a1 100644 --- a/kiauh/modules/klipper/klipper_setup.py +++ b/kiauh/modules/klipper/klipper_setup.py @@ -195,11 +195,17 @@ def set_instance_suffix( def remove_single_instance( instance_manager: InstanceManager, instance_list: List[Klipper] ) -> None: + question = f"Delete {KLIPPER_DIR} and {KLIPPER_ENV_DIR}?" + del_remnants = get_confirm(question, allow_go_back=True) + if del_remnants is None: + Logger.print_info("Exiting Klipper Uninstaller ...") + return + try: instance_manager.current_instance = instance_list[0] instance_manager.stop_instance() instance_manager.disable_instance() - instance_manager.delete_instance(del_remnants=True) + instance_manager.delete_instance(del_remnants=del_remnants) instance_manager.reload_daemon() except (OSError, subprocess.CalledProcessError): Logger.print_error("Removing instance failed!") @@ -215,22 +221,26 @@ def remove_multi_instance( options.extend(["a", "A", "b", "B"]) selection = get_selection_input("Select Klipper instance to remove", options) - print(selection) if selection == "b".lower(): return elif selection == "a".lower(): + question = f"Delete {KLIPPER_DIR} and {KLIPPER_ENV_DIR}?" + del_remnants = get_confirm(question, allow_go_back=True) + if del_remnants is None: + Logger.print_info("Exiting Klipper Uninstaller ...") + return + Logger.print_info("Removing all Klipper instances ...") for instance in instance_list: instance_manager.current_instance = instance instance_manager.stop_instance() instance_manager.disable_instance() - instance_manager.delete_instance(del_remnants=True) + instance_manager.delete_instance(del_remnants=del_remnants) else: instance = instance_list[int(selection)] - Logger.print_info( - f"Removing Klipper instance: {instance.get_service_file_name()}" - ) + log = f"Removing Klipper instance: {instance.get_service_file_name()}" + Logger.print_info(log) instance_manager.current_instance = instance instance_manager.stop_instance() instance_manager.disable_instance()