mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-23 15:53:36 +05:00
refactor(KIAUH): move util functions into util modules
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
@@ -11,9 +11,7 @@
|
|||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from components.webui_client.client_config.client_config_setup import (
|
from components.webui_client.client_utils import get_existing_client_config
|
||||||
get_existing_client_config,
|
|
||||||
)
|
|
||||||
from kiauh import KIAUH_CFG
|
from kiauh import KIAUH_CFG
|
||||||
from components.klipper import (
|
from components.klipper import (
|
||||||
EXIT_KLIPPER_SETUP,
|
EXIT_KLIPPER_SETUP,
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ from pathlib import Path
|
|||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from components.webui_client import MAINSAIL_DIR
|
from components.webui_client import MAINSAIL_DIR
|
||||||
from components.webui_client.client_config.client_config_setup import get_existing_client_config, get_existing_clients
|
from components.webui_client.client_utils import enable_mainsail_remotemode, get_existing_clients
|
||||||
from components.webui_client.client_utils import enable_mainsail_remotemode
|
|
||||||
from kiauh import KIAUH_CFG
|
from kiauh import KIAUH_CFG
|
||||||
from components.klipper.klipper import Klipper
|
from components.klipper.klipper import Klipper
|
||||||
from components.klipper.klipper_dialogs import print_instance_overview
|
from components.klipper.klipper_dialogs import print_instance_overview
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List, get_args, Union, Set
|
from typing import List
|
||||||
|
|
||||||
from kiauh import KIAUH_CFG
|
from kiauh import KIAUH_CFG
|
||||||
from components.klipper.klipper import Klipper
|
from components.klipper.klipper import Klipper
|
||||||
@@ -21,8 +21,8 @@ from components.webui_client import ClientConfigData, ClientName, ClientData
|
|||||||
from components.webui_client.client_dialogs import print_client_already_installed_dialog
|
from components.webui_client.client_dialogs import print_client_already_installed_dialog
|
||||||
from components.webui_client.client_utils import (
|
from components.webui_client.client_utils import (
|
||||||
load_client_data,
|
load_client_data,
|
||||||
backup_client_config_data,
|
backup_client_config_data, config_for_other_client_exist,
|
||||||
)
|
)
|
||||||
from core.config_manager.config_manager import ConfigManager
|
from core.config_manager.config_manager import ConfigManager
|
||||||
|
|
||||||
from core.instance_manager.instance_manager import InstanceManager
|
from core.instance_manager.instance_manager import InstanceManager
|
||||||
@@ -80,44 +80,6 @@ def install_client_config(client_name: ClientName) -> None:
|
|||||||
Logger.print_ok(f"{d_name} installation complete!", start="\n")
|
Logger.print_ok(f"{d_name} installation complete!", start="\n")
|
||||||
|
|
||||||
|
|
||||||
def config_for_other_client_exist(client_to_ignore: ClientName) -> bool:
|
|
||||||
"""
|
|
||||||
Check if any other client configs are present on the system.
|
|
||||||
It is usually not harmful, but chances are they can conflict each other.
|
|
||||||
Multiple client configs are, at least, redundant to have them installed
|
|
||||||
:param client_to_ignore: The client name to ignore for the check
|
|
||||||
:return: True, if other client configs were found, else False
|
|
||||||
"""
|
|
||||||
|
|
||||||
clients = set([c["name"] for c in get_existing_client_config()])
|
|
||||||
clients = clients - {client_to_ignore}
|
|
||||||
|
|
||||||
return True if len(clients) > 0 else False
|
|
||||||
|
|
||||||
|
|
||||||
def get_existing_clients() -> List[ClientData]:
|
|
||||||
clients = list(get_args(ClientName))
|
|
||||||
installed_clients: List[ClientData] = []
|
|
||||||
for c in clients:
|
|
||||||
c_data: ClientData = load_client_data(c)
|
|
||||||
if c_data.get("dir").exists():
|
|
||||||
installed_clients.append(c_data)
|
|
||||||
|
|
||||||
return installed_clients
|
|
||||||
|
|
||||||
|
|
||||||
def get_existing_client_config() -> List[ClientData]:
|
|
||||||
clients = list(get_args(ClientName))
|
|
||||||
installed_client_configs: List[ClientData] = []
|
|
||||||
for c in clients:
|
|
||||||
c_data: ClientData = load_client_data(c)
|
|
||||||
c_config_data: ClientConfigData = c_data.get("client_config")
|
|
||||||
if c_config_data.get("dir").exists():
|
|
||||||
installed_client_configs.append(c_data)
|
|
||||||
|
|
||||||
return installed_client_configs
|
|
||||||
|
|
||||||
|
|
||||||
def download_client_config(client_config: ClientConfigData) -> None:
|
def download_client_config(client_config: ClientConfigData) -> None:
|
||||||
try:
|
try:
|
||||||
Logger.print_status(f"Downloading {client_config.get('display_name')} ...")
|
Logger.print_status(f"Downloading {client_config.get('display_name')} ...")
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ from components.webui_client import (
|
|||||||
from components.moonraker.moonraker import Moonraker
|
from components.moonraker.moonraker import Moonraker
|
||||||
from components.webui_client.client_config.client_config_setup import (
|
from components.webui_client.client_config.client_config_setup import (
|
||||||
install_client_config,
|
install_client_config,
|
||||||
config_for_other_client_exist,
|
|
||||||
)
|
)
|
||||||
from components.webui_client.client_dialogs import (
|
from components.webui_client.client_dialogs import (
|
||||||
print_moonraker_not_found_dialog,
|
print_moonraker_not_found_dialog,
|
||||||
@@ -33,8 +32,8 @@ from components.webui_client.client_utils import (
|
|||||||
restore_mainsail_config_json,
|
restore_mainsail_config_json,
|
||||||
enable_mainsail_remotemode,
|
enable_mainsail_remotemode,
|
||||||
symlink_webui_nginx_log,
|
symlink_webui_nginx_log,
|
||||||
load_client_data,
|
load_client_data, config_for_other_client_exist,
|
||||||
)
|
)
|
||||||
from core.config_manager.config_manager import ConfigManager
|
from core.config_manager.config_manager import ConfigManager
|
||||||
from core.instance_manager.instance_manager import InstanceManager
|
from core.instance_manager.instance_manager import InstanceManager
|
||||||
from kiauh import KIAUH_CFG
|
from kiauh import KIAUH_CFG
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import json
|
|||||||
import shutil
|
import shutil
|
||||||
from json import JSONDecodeError
|
from json import JSONDecodeError
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List, Optional, Dict, Literal, Union
|
from typing import List, Optional, Dict, Literal, Union, get_args
|
||||||
|
|
||||||
import urllib.request
|
import urllib.request
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ from components.webui_client import (
|
|||||||
from core.backup_manager.backup_manager import BackupManager
|
from core.backup_manager.backup_manager import BackupManager
|
||||||
from core.repo_manager.repo_manager import RepoManager
|
from core.repo_manager.repo_manager import RepoManager
|
||||||
from utils import NGINX_SITES_AVAILABLE, NGINX_CONFD
|
from utils import NGINX_SITES_AVAILABLE, NGINX_CONFD
|
||||||
from utils.common import get_install_status_webui, get_install_status_common
|
from utils.common import get_install_status_webui
|
||||||
from utils.constants import COLOR_CYAN, RESET_FORMAT, COLOR_YELLOW
|
from utils.constants import COLOR_CYAN, RESET_FORMAT, COLOR_YELLOW
|
||||||
from utils.logger import Logger
|
from utils.logger import Logger
|
||||||
|
|
||||||
@@ -235,3 +235,41 @@ def backup_client_config_data(client: ClientData) -> None:
|
|||||||
target = client_config.get("backup_dir")
|
target = client_config.get("backup_dir")
|
||||||
bm = BackupManager()
|
bm = BackupManager()
|
||||||
bm.backup_directory(name, source, target)
|
bm.backup_directory(name, source, target)
|
||||||
|
|
||||||
|
|
||||||
|
def get_existing_clients() -> List[ClientData]:
|
||||||
|
clients = list(get_args(ClientName))
|
||||||
|
installed_clients: List[ClientData] = []
|
||||||
|
for c in clients:
|
||||||
|
c_data: ClientData = load_client_data(c)
|
||||||
|
if c_data.get("dir").exists():
|
||||||
|
installed_clients.append(c_data)
|
||||||
|
|
||||||
|
return installed_clients
|
||||||
|
|
||||||
|
|
||||||
|
def get_existing_client_config() -> List[ClientData]:
|
||||||
|
clients = list(get_args(ClientName))
|
||||||
|
installed_client_configs: List[ClientData] = []
|
||||||
|
for c in clients:
|
||||||
|
c_data: ClientData = load_client_data(c)
|
||||||
|
c_config_data: ClientConfigData = c_data.get("client_config")
|
||||||
|
if c_config_data.get("dir").exists():
|
||||||
|
installed_client_configs.append(c_data)
|
||||||
|
|
||||||
|
return installed_client_configs
|
||||||
|
|
||||||
|
|
||||||
|
def config_for_other_client_exist(client_to_ignore: ClientName) -> bool:
|
||||||
|
"""
|
||||||
|
Check if any other client configs are present on the system.
|
||||||
|
It is usually not harmful, but chances are they can conflict each other.
|
||||||
|
Multiple client configs are, at least, redundant to have them installed
|
||||||
|
:param client_to_ignore: The client name to ignore for the check
|
||||||
|
:return: True, if other client configs were found, else False
|
||||||
|
"""
|
||||||
|
|
||||||
|
clients = set([c["name"] for c in get_existing_client_config()])
|
||||||
|
clients = clients - {client_to_ignore}
|
||||||
|
|
||||||
|
return True if len(clients) > 0 else False
|
||||||
|
|||||||
Reference in New Issue
Block a user