fix(KIAUH): more file path handling improvements

Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
dw-0
2023-12-25 22:31:18 +01:00
parent d20d82aeac
commit 1b4c76d080
3 changed files with 22 additions and 20 deletions

View File

@@ -205,12 +205,12 @@ def get_highest_index(instance_list: List[Klipper]) -> int:
def create_example_printer_cfg(instance: Klipper) -> None:
Logger.print_status(f"Creating example printer.cfg in '{instance.cfg_dir}'")
if instance.cfg_file is not None:
Logger.print_info(f"printer.cfg in '{instance.cfg_dir}' already exists.")
if instance.cfg_file.is_file():
Logger.print_info(f"'{instance.cfg_file}' already exists.")
return
source = MODULE_PATH.joinpath("res/printer.cfg")
target = instance.cfg_dir.joinpath("printer.cfg")
target = instance.cfg_file
try:
shutil.copy(source, target)
except OSError as e:

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env python3
import os
# ======================================================================= #
# Copyright (C) 2020 - 2023 Dominik Willner <th33xitus@gmail.com> #
@@ -53,7 +52,7 @@ def run_mainsail_removal(
def remove_mainsail_dir() -> None:
Logger.print_status("Removing Mainsail ...")
if not Path(MAINSAIL_DIR).exists():
if not MAINSAIL_DIR.exists():
Logger.print_info(f"'{MAINSAIL_DIR}' does not exist. Skipping ...")
return
@@ -81,12 +80,13 @@ def remove_nginx_logs() -> None:
remove_file(Path("/var/log/nginx/mainsail-error.log"), True)
im = InstanceManager(Klipper)
if not im.instances:
instances: List[Klipper] = im.instances
if not instances:
return
for instance in im.instances:
remove_file(Path(instance.log_dir, "mainsail-access.log"))
remove_file(Path(instance.log_dir, "mainsail-error.log"))
for instance in instances:
remove_file(instance.log_dir.joinpath("mainsail-access.log"))
remove_file(instance.log_dir.joinpath("mainsail-error.log"))
except (OSError, subprocess.CalledProcessError) as e:
Logger.print_error(f"Unable to NGINX logs:\n{e}")
@@ -118,7 +118,7 @@ def remove_updater_section(name: str) -> None:
def remove_mainsail_cfg_dir() -> None:
Logger.print_status("Removing mainsail-config ...")
if not Path(MAINSAIL_CONFIG_DIR).exists():
if not MAINSAIL_CONFIG_DIR.exists():
Logger.print_info(f"'{MAINSAIL_CONFIG_DIR}' does not exist. Skipping ...")
return
@@ -130,11 +130,12 @@ def remove_mainsail_cfg_dir() -> None:
def remove_mainsail_cfg_symlink() -> None:
Logger.print_status("Removing mainsail.cfg symlinks ...")
im = InstanceManager(Moonraker)
for instance in im.instances:
Logger.print_status(f"Removing symlink from '{instance.cfg_dir}' ...")
im = InstanceManager(Klipper)
instances: List[Klipper] = im.instances
for instance in instances:
Logger.print_status(f"Removing symlink from '{instance.cfg_file}' ...")
try:
remove_file(Path(instance.cfg_dir, "mainsail.cfg"))
remove_file(instance.cfg_dir.joinpath("mainsail.cfg"))
except subprocess.CalledProcessError:
Logger.print_error("Failed to remove symlink!")
@@ -142,15 +143,16 @@ def remove_mainsail_cfg_symlink() -> None:
def remove_printer_cfg_include() -> None:
Logger.print_status("Remove mainsail-config include from printer.cfg ...")
im = InstanceManager(Klipper)
if not im.instances:
instances: List[Klipper] = im.instances
if not instances:
Logger.print_info("Klipper not installed. Skipping ...")
return
for instance in im.instances:
for instance in instances:
log = f"Removing include from '{instance.cfg_file}' ..."
Logger.print_status(log)
if not Path(instance.cfg_file).exists():
if not instance.cfg_file.is_file():
continue
cm = ConfigManager(instance.cfg_file)

View File

@@ -40,12 +40,12 @@ def create_example_moonraker_conf(
instance: Moonraker, ports_map: Dict[str, int]
) -> None:
Logger.print_status(f"Creating example moonraker.conf in '{instance.cfg_dir}'")
if instance.cfg_file is not None:
Logger.print_info(f"moonraker.conf in '{instance.cfg_dir}' already exists.")
if instance.cfg_file.is_file():
Logger.print_info(f"'{instance.cfg_file}' already exists.")
return
source = MODULE_PATH.joinpath("res/moonraker.conf")
target = instance.cfg_dir.joinpath("moonraker.conf")
target = instance.cfg_file
try:
shutil.copy(source, target)
except OSError as e: