mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-25 16:53:36 +05:00
refactor: improve system service removal
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
@@ -30,6 +30,7 @@ from core.constants import SYSTEMD
|
|||||||
from core.instance_manager.instance_manager import InstanceManager
|
from core.instance_manager.instance_manager import InstanceManager
|
||||||
from core.logger import DialogType, Logger
|
from core.logger import DialogType, Logger
|
||||||
from core.settings.kiauh_settings import KiauhSettings
|
from core.settings.kiauh_settings import KiauhSettings
|
||||||
|
from core.types import ComponentStatus
|
||||||
from utils.common import (
|
from utils.common import (
|
||||||
check_install_dependencies,
|
check_install_dependencies,
|
||||||
get_install_status,
|
get_install_status,
|
||||||
@@ -45,9 +46,8 @@ from utils.sys_utils import (
|
|||||||
check_python_version,
|
check_python_version,
|
||||||
cmd_sysctl_service,
|
cmd_sysctl_service,
|
||||||
install_python_requirements,
|
install_python_requirements,
|
||||||
remove_service_file,
|
remove_system_service,
|
||||||
)
|
)
|
||||||
from core.types import ComponentStatus
|
|
||||||
|
|
||||||
|
|
||||||
def install_klipperscreen() -> None:
|
def install_klipperscreen() -> None:
|
||||||
@@ -166,10 +166,7 @@ def remove_klipperscreen() -> None:
|
|||||||
Logger.print_warn("KlipperScreen environment not found!")
|
Logger.print_warn("KlipperScreen environment not found!")
|
||||||
|
|
||||||
if KLIPPERSCREEN_SERVICE_FILE.exists():
|
if KLIPPERSCREEN_SERVICE_FILE.exists():
|
||||||
remove_service_file(
|
remove_system_service(KLIPPERSCREEN_SERVICE_NAME)
|
||||||
KLIPPERSCREEN_SERVICE_NAME,
|
|
||||||
KLIPPERSCREEN_SERVICE_FILE,
|
|
||||||
)
|
|
||||||
|
|
||||||
logfile = Path(f"/tmp/{KLIPPERSCREEN_LOG_NAME}")
|
logfile = Path(f"/tmp/{KLIPPERSCREEN_LOG_NAME}")
|
||||||
if logfile.exists():
|
if logfile.exists():
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ from core.backup_manager.backup_manager import BackupManager
|
|||||||
from core.instance_manager.instance_manager import InstanceManager
|
from core.instance_manager.instance_manager import InstanceManager
|
||||||
from core.logger import DialogType, Logger
|
from core.logger import DialogType, Logger
|
||||||
from core.settings.kiauh_settings import KiauhSettings
|
from core.settings.kiauh_settings import KiauhSettings
|
||||||
|
from core.types import ComponentStatus
|
||||||
from utils.common import check_install_dependencies, get_install_status
|
from utils.common import check_install_dependencies, get_install_status
|
||||||
from utils.config_utils import add_config_section, remove_config_section
|
from utils.config_utils import add_config_section, remove_config_section
|
||||||
from utils.git_utils import (
|
from utils.git_utils import (
|
||||||
@@ -40,9 +41,8 @@ from utils.sys_utils import (
|
|||||||
check_python_version,
|
check_python_version,
|
||||||
cmd_sysctl_service,
|
cmd_sysctl_service,
|
||||||
install_python_requirements,
|
install_python_requirements,
|
||||||
remove_service_file,
|
remove_system_service,
|
||||||
)
|
)
|
||||||
from core.types import ComponentStatus
|
|
||||||
|
|
||||||
|
|
||||||
def install_mobileraker() -> None:
|
def install_mobileraker() -> None:
|
||||||
@@ -161,10 +161,7 @@ def remove_mobileraker() -> None:
|
|||||||
Logger.print_warn("Mobileraker's companion environment not found!")
|
Logger.print_warn("Mobileraker's companion environment not found!")
|
||||||
|
|
||||||
if MOBILERAKER_SERVICE_FILE.exists():
|
if MOBILERAKER_SERVICE_FILE.exists():
|
||||||
remove_service_file(
|
remove_system_service(MOBILERAKER_SERVICE_NAME)
|
||||||
MOBILERAKER_SERVICE_NAME,
|
|
||||||
MOBILERAKER_SERVICE_FILE,
|
|
||||||
)
|
|
||||||
|
|
||||||
kl_im = InstanceManager(Klipper)
|
kl_im = InstanceManager(Klipper)
|
||||||
kl_instances: List[Klipper] = kl_im.instances
|
kl_instances: List[Klipper] = kl_im.instances
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ def remove_with_sudo(file: Path) -> None:
|
|||||||
cmd = ["sudo", "rm", "-rf", file.as_posix()]
|
cmd = ["sudo", "rm", "-rf", file.as_posix()]
|
||||||
run(cmd, stderr=PIPE, check=True)
|
run(cmd, stderr=PIPE, check=True)
|
||||||
except CalledProcessError as e:
|
except CalledProcessError as e:
|
||||||
Logger.print_error(f"Failed to remove file: {e}")
|
Logger.print_error(f"Failed to remove {file}: {e}")
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -486,21 +486,28 @@ def create_env_file(path: Path, content: str) -> None:
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
def remove_service_file(service_name: str, service_file: Path) -> None:
|
def remove_system_service(service_name: str) -> None:
|
||||||
"""
|
"""
|
||||||
Removes a systemd service file at the provided path with the provided name.
|
Disables and removes a systemd service
|
||||||
:param service_name: the name of the service
|
:param service_name: name of the service unit file - must end with '.service'
|
||||||
:param service_file: the path of the service file
|
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
|
if not service_name.endswith(".service"):
|
||||||
|
raise ValueError(f"service_name '{service_name}' must end with '.service'")
|
||||||
|
|
||||||
|
file: Path = SYSTEMD.joinpath(service_name)
|
||||||
|
if not file.exists() or not file.is_file():
|
||||||
|
Logger.print_info(f"Service '{service_name}' does not exist! Skipped ...")
|
||||||
|
return
|
||||||
|
|
||||||
Logger.print_status(f"Removing {service_name} ...")
|
Logger.print_status(f"Removing {service_name} ...")
|
||||||
cmd_sysctl_service(service_name, "stop")
|
cmd_sysctl_service(service_name, "stop")
|
||||||
cmd_sysctl_service(service_name, "disable")
|
cmd_sysctl_service(service_name, "disable")
|
||||||
remove_with_sudo(service_file)
|
remove_with_sudo(file)
|
||||||
cmd_sysctl_manage("daemon-reload")
|
cmd_sysctl_manage("daemon-reload")
|
||||||
cmd_sysctl_manage("reset-failed")
|
cmd_sysctl_manage("reset-failed")
|
||||||
Logger.print_ok(f"{service_name} successfully removed!")
|
Logger.print_ok(f"{service_name} successfully removed!")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
Logger.print_error(f"Error removing {service_name}:\n{e}")
|
Logger.print_error(f"Error removing {service_name}: {e}")
|
||||||
raise
|
raise
|
||||||
|
|||||||
Reference in New Issue
Block a user