Compare commits

..

10 Commits

Author SHA1 Message Date
dw-0
b02df9a1e0 Release v6.0.0-alpha.11
Merge develop into master (Release v6.0.0-alpha.11)
2024-11-24 15:55:04 +01:00
dw-0
243ea6582a Release v6.0.0-alpha.10
Merge develop into master (Release v6.0.0-alpha.10)
2024-11-23 21:17:51 +01:00
dw-0
a63cf8c9d9 Release v6.0.0-alpha.9
Merge develop into master (Release v6.0.0-alpha.9)
2024-10-24 12:29:24 +02:00
dw-0
425d86a12f Release v6.0.0-alpha.8
Merge develop into master (Release v6.0.0-alpha.8)
2024-10-21 19:45:55 +02:00
dw-0
1b5691f2f5 Release v6.0.0-alpha.7
Merge develop into master (v6.0.0-alpha.7)

fixes #561
fixes #564
fixes #565
2024-10-13 11:51:19 +02:00
dw-0
dc026a7a2b Release v6.0.0-alpha.6
Merge develop into master (v6.0.0-alpha.6)

fixes #545
fixes #553
fixes #557
2024-10-05 08:29:40 +02:00
dw-0
a8a73249a5 Release v6.0.0-alpha.5
Merge develop into master (v6.0.0-alpha.5)
2024-09-26 20:55:22 +02:00
dw-0
ec3f93eeda Release v6.0.0-alpha.4
Merge develop into master (v6.0.0-alpha.4)
2024-09-22 09:43:04 +02:00
dw-0
4cf523a758 Merge pull request #524 from dw-0/develop
Merge develop into master
2024-09-08 19:04:19 +02:00
dw-0
1d06bf76f3 Merge pull request #511 from dw-0/develop
Merge develop into master
2024-09-01 19:02:48 +02:00
6 changed files with 36 additions and 42 deletions

View File

@@ -37,7 +37,6 @@ from components.webui_client.client_utils import (
) )
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.services.message_service import Message
from core.settings.kiauh_settings import KiauhSettings from core.settings.kiauh_settings import KiauhSettings
from core.types.color import Color from core.types.color import Color
from utils.common import backup_printer_config_dir, check_install_dependencies from utils.common import backup_printer_config_dir, check_install_dependencies
@@ -56,21 +55,14 @@ def install_client(
client: BaseWebClient, client: BaseWebClient,
settings: KiauhSettings, settings: KiauhSettings,
reinstall: bool = False, reinstall: bool = False,
) -> Message: ) -> None:
completion_msg = Message(
title=f"{client.display_name} Installation Process completed",
color=Color.GREEN,
)
mr_instances: List[Moonraker] = get_instances(Moonraker) mr_instances: List[Moonraker] = get_instances(Moonraker)
enable_remotemode = False enable_remotemode = False
if not mr_instances: if not mr_instances:
print_moonraker_not_found_dialog(client.display_name) print_moonraker_not_found_dialog(client.display_name)
if not get_confirm(f"Continue {client.display_name} installation?"): if not get_confirm(f"Continue {client.display_name} installation?"):
completion_msg.color = Color.YELLOW return
completion_msg.title = f"{client.display_name} Installation Process aborted"
completion_msg.text.append("Installation was aborted by the user!")
return completion_msg
# if moonraker is not installed or multiple instances # if moonraker is not installed or multiple instances
# are installed we enable mainsails remote mode # are installed we enable mainsails remote mode
@@ -98,9 +90,9 @@ def install_client(
default_port if reinstall else get_client_port_selection(client, settings) default_port if reinstall else get_client_port_selection(client, settings)
) )
try: check_install_dependencies({"nginx"})
check_install_dependencies({"nginx"})
try:
download_client(client) download_client(client)
if enable_remotemode and client.client == WebClientType.MAINSAIL: if enable_remotemode and client.client == WebClientType.MAINSAIL:
enable_mainsail_remotemode() enable_mainsail_remotemode()
@@ -138,17 +130,23 @@ def install_client(
except Exception as e: except Exception as e:
Logger.print_error(e) Logger.print_error(e)
completion_msg.color = Color.RED Logger.print_dialog(
completion_msg.title = f"{client.display_name} Installation Process failed!" DialogType.ERROR,
completion_msg.text.append( center_content=True,
f"An unexpected error occured. Please see the output above. {client.display_name} installation failed!") content=[f"{client.display_name} installation failed!"],
return completion_msg )
return
# noinspection HttpUrlsUsage # noinspection HttpUrlsUsage
completion_msg.text.append( Logger.print_dialog(
f"Open {client.display_name} now on: http://{get_ipv4_addr()}:{port}") DialogType.CUSTOM,
custom_title=f"{client.display_name} installation complete!",
return completion_msg custom_color=Color.GREEN,
center_content=True,
content=[
f"Open {client.display_name} now on: http://{get_ipv4_addr()}:{port}",
],
)
def download_client(client: BaseWebClient) -> None: def download_client(client: BaseWebClient) -> None:

View File

@@ -65,8 +65,7 @@ class ClientInstallMenu(BaseMenu):
print(menu, end="") print(menu, end="")
def reinstall_client(self, **kwargs) -> None: def reinstall_client(self, **kwargs) -> None:
completion_msg = install_client(self.client, settings=self.settings, reinstall=True) install_client(self.client, settings=self.settings, reinstall=True)
self.message_service.set_message(completion_msg)
def change_listen_port(self, **kwargs) -> None: def change_listen_port(self, **kwargs) -> None:
curr_port = self._get_current_port() curr_port = self._get_current_port()

View File

@@ -79,14 +79,14 @@ class BackupManager:
if source is None or not Path(source).exists(): if source is None or not Path(source).exists():
Logger.print_info("Source directory does not exist! Skipping ...") Logger.print_info("Source directory does not exist! Skipping ...")
return None return
target = self.backup_root_dir if target is None else target target = self.backup_root_dir if target is None else target
try: try:
date = get_current_date().get("date") date = get_current_date().get("date")
time = get_current_date().get("time") time = get_current_date().get("time")
backup_target = target.joinpath(f"{name.lower()}-{date}-{time}") backup_target = target.joinpath(f"{name.lower()}-{date}-{time}")
shutil.copytree(source, backup_target, ignore=self.ignore_folders_func, ignore_dangling_symlinks=True) shutil.copytree(source, backup_target, ignore=self.ignore_folders_func)
Logger.print_ok("Backup successful!") Logger.print_ok("Backup successful!")
return backup_target return backup_target

View File

@@ -81,13 +81,21 @@ class InstallMenu(BaseMenu):
moonraker_setup.install_moonraker() moonraker_setup.install_moonraker()
def install_mainsail(self, **kwargs) -> None: def install_mainsail(self, **kwargs) -> None:
self._install_client(MainsailData()) client: MainsailData = MainsailData()
if client.client_dir.exists():
ClientInstallMenu(client, self.__class__).run()
else:
install_client(client, settings=KiauhSettings())
def install_mainsail_config(self, **kwargs) -> None: def install_mainsail_config(self, **kwargs) -> None:
install_client_config(MainsailData()) install_client_config(MainsailData())
def install_fluidd(self, **kwargs) -> None: def install_fluidd(self, **kwargs) -> None:
self._install_client(FluiddData()) client: FluiddData = FluiddData()
if client.client_dir.exists():
ClientInstallMenu(client, self.__class__).run()
else:
install_client(client, settings=KiauhSettings())
def install_fluidd_config(self, **kwargs) -> None: def install_fluidd_config(self, **kwargs) -> None:
install_client_config(FluiddData()) install_client_config(FluiddData())
@@ -97,10 +105,3 @@ class InstallMenu(BaseMenu):
def install_crowsnest(self, **kwargs) -> None: def install_crowsnest(self, **kwargs) -> None:
install_crowsnest() install_crowsnest()
def _install_client(self, client: MainsailData | FluiddData) -> None:
if client.client_dir.exists():
ClientInstallMenu(client, self.__class__).run()
else:
completion_msg = install_client(client, settings=KiauhSettings())
self.message_service.set_message(completion_msg)

View File

@@ -43,8 +43,7 @@ def get_kiauh_version() -> str:
Helper method to get the current KIAUH version by reading the latest tag Helper method to get the current KIAUH version by reading the latest tag
:return: string of the latest tag :return: string of the latest tag
""" """
lastest_tag: str = get_local_tags(Path(__file__).parent.parent)[-1] return get_local_tags(Path(__file__).parent.parent)[-1]
return lastest_tag
def convert_camelcase_to_kebabcase(name: str) -> str: def convert_camelcase_to_kebabcase(name: str) -> str:

View File

@@ -1,7 +1,6 @@
from __future__ import annotations from __future__ import annotations
import json import json
import re
import shutil import shutil
import urllib.request import urllib.request
from http.client import HTTPResponse from http.client import HTTPResponse
@@ -119,7 +118,7 @@ def get_local_tags(repo_path: Path, _filter: str | None = None) -> List[str]:
:return: List of tags :return: List of tags
""" """
try: try:
cmd: List[str] = ["git", "tag", "-l"] cmd = ["git", "tag", "-l"]
if _filter is not None: if _filter is not None:
cmd.append(f"'${_filter}'") cmd.append(f"'${_filter}'")
@@ -130,10 +129,8 @@ def get_local_tags(repo_path: Path, _filter: str | None = None) -> List[str]:
cwd=repo_path.as_posix(), cwd=repo_path.as_posix(),
).decode(encoding="utf-8") ).decode(encoding="utf-8")
tags: List[str] = result.split("\n")[:-1] tags = result.split("\n")
return tags[:-1]
return sorted(tags, key=lambda x: [int(i) if i.isdigit() else i for i in
re.split(r'(\d+)', x)])
except CalledProcessError: except CalledProcessError:
return [] return []