chore: cleanup settings_menu

Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
dw-0
2024-05-11 23:07:54 +02:00
parent a03e943ebf
commit 51993e367d

View File

@@ -9,7 +9,7 @@
import shutil import shutil
import textwrap import textwrap
from pathlib import Path from pathlib import Path
from typing import Type, Optional, Tuple from typing import Optional, Tuple, Type
from components.klipper import KLIPPER_DIR from components.klipper import KLIPPER_DIR
from components.klipper.klipper import Klipper from components.klipper.klipper import Klipper
@@ -19,10 +19,10 @@ from core.instance_manager.instance_manager import InstanceManager
from core.menus import Option from core.menus import Option
from core.menus.base_menu import BaseMenu from core.menus.base_menu import BaseMenu
from core.settings.kiauh_settings import KiauhSettings from core.settings.kiauh_settings import KiauhSettings
from utils.constants import COLOR_CYAN, RESET_FORMAT, COLOR_GREEN, COLOR_YELLOW from utils.constants import COLOR_CYAN, COLOR_GREEN, RESET_FORMAT
from utils.git_utils import git_clone_wrapper from utils.git_utils import git_clone_wrapper
from utils.input_utils import get_string_input, get_confirm from utils.input_utils import get_confirm, get_string_input
from utils.logger import Logger from utils.logger import DialogType, Logger
# noinspection PyUnusedLocal # noinspection PyUnusedLocal
@@ -100,12 +100,17 @@ class SettingsMenu(BaseMenu):
self._format_repo_str("moonraker") self._format_repo_str("moonraker")
self.auto_backups_enabled = self.kiauh_settings.get( self.auto_backups_enabled = self.kiauh_settings.get(
"kiauh", "backup_before_update" "kiauh",
"backup_before_update",
) )
self.mainsail_unstable = self.kiauh_settings.get( self.mainsail_unstable = self.kiauh_settings.get(
"mainsail", "unstable_releases" "mainsail",
"unstable_releases",
)
self.fluidd_unstable = self.kiauh_settings.get(
"fluidd",
"unstable_releases",
) )
self.fluidd_unstable = self.kiauh_settings.get("fluidd", "unstable_releases")
def _format_repo_str(self, repo_name: str) -> None: def _format_repo_str(self, repo_name: str) -> None:
repo = self.kiauh_settings.get(repo_name, "repo_url") repo = self.kiauh_settings.get(repo_name, "repo_url")
@@ -115,20 +120,16 @@ class SettingsMenu(BaseMenu):
setattr(self, f"{repo_name}_repo", f"{COLOR_CYAN}{repo}{RESET_FORMAT} {branch}") setattr(self, f"{repo_name}_repo", f"{COLOR_CYAN}{repo}{RESET_FORMAT} {branch}")
def _gather_input(self) -> Tuple[str, str]: def _gather_input(self) -> Tuple[str, str]:
l2 = "Make sure your input is correct!" Logger.print_dialog(
error = textwrap.dedent( DialogType.ATTENTION,
f"""\n [
{COLOR_YELLOW}/=======================================================\\ "There is no input validation in place! Make sure your"
| ATTENTION: | " input is valid and has no typos! For any change to"
| There is no input validation in place! Make sure your | " take effect, the repository must be cloned again. "
| input is valid and has no typos! For any change to | "Make sure you don't have any ongoing prints running, "
| take effect, the repository must be cloned again. | "as the services will be restarted!"
| Make sure you don't have any ongoing prints running, | ],
| as the services will be restarted! | )
\=======================================================/{RESET_FORMAT}
"""
)[1:]
print(error, end="\n")
repo = get_string_input( repo = get_string_input(
"Enter new repository URL", "Enter new repository URL",
allow_special_chars=True, allow_special_chars=True,
@@ -140,44 +141,35 @@ class SettingsMenu(BaseMenu):
return repo, branch return repo, branch
def _display_summary(self, name: str, repo: str, branch: str):
l1 = f"New {name} repository URL:"
l2 = f"{repo}"
l3 = f"New {name} repository branch:"
l4 = f"{branch}"
summary = textwrap.dedent(
f"""\n
/=======================================================\\
| {l1:<52} |
| {l2:<52} |
| {l3:<52} |
| {l4:<52} |
\=======================================================/
"""
)[1:]
print(summary, end="")
def _set_repo(self, repo_name: str): def _set_repo(self, repo_name: str):
repo, branch = self._gather_input() repo_url, branch = self._gather_input()
self._display_summary(repo_name.capitalize(), repo, branch) display_name = repo_name.capitalize()
Logger.print_dialog(
DialogType.CUSTOM,
[
f"New {display_name} repository URL:",
f"{repo_url}",
f"New {display_name} repository branch:",
f"{branch}",
],
end="",
)
if get_confirm("Apply changes?", allow_go_back=True): if get_confirm("Apply changes?", allow_go_back=True):
self.kiauh_settings.set(repo_name, "repo_url", repo) self.kiauh_settings.set(repo_name, "repo_url", repo_url)
self.kiauh_settings.set(repo_name, "branch", branch) self.kiauh_settings.set(repo_name, "branch", branch)
self.kiauh_settings.save() self.kiauh_settings.save()
self._load_settings() self._load_settings()
Logger.print_ok("Changes saved!") Logger.print_ok("Changes saved!")
else: else:
Logger.print_info( Logger.print_info(
f"Skipping change of {repo_name.capitalize()} source repository ..." f"Skipping change of {display_name} source repository ..."
) )
return return
Logger.print_status( Logger.print_status(f"Switching to {display_name}'s new source repository ...")
f"Switching to {repo_name.capitalize()}'s new source repository ..."
)
self._switch_repo(repo_name) self._switch_repo(repo_name)
Logger.print_ok(f"Switched to {repo} at branch {branch}!") Logger.print_ok(f"Switched to {repo_url} at branch {branch}!")
def _switch_repo(self, name: str) -> None: def _switch_repo(self, name: str) -> None:
target_dir: Path target_dir: Path
@@ -211,17 +203,27 @@ class SettingsMenu(BaseMenu):
def toggle_mainsail_release(self, **kwargs): def toggle_mainsail_release(self, **kwargs):
self.mainsail_unstable = not self.mainsail_unstable self.mainsail_unstable = not self.mainsail_unstable
self.kiauh_settings.set("mainsail", "unstable_releases", self.mainsail_unstable) self.kiauh_settings.set(
"mainsail",
"unstable_releases",
self.mainsail_unstable,
)
self.kiauh_settings.save() self.kiauh_settings.save()
def toggle_fluidd_release(self, **kwargs): def toggle_fluidd_release(self, **kwargs):
self.fluidd_unstable = not self.fluidd_unstable self.fluidd_unstable = not self.fluidd_unstable
self.kiauh_settings.set("fluidd", "unstable_releases", self.fluidd_unstable) self.kiauh_settings.set(
"fluidd",
"unstable_releases",
self.fluidd_unstable,
)
self.kiauh_settings.save() self.kiauh_settings.save()
def toggle_backup_before_update(self, **kwargs): def toggle_backup_before_update(self, **kwargs):
self.auto_backups_enabled = not self.auto_backups_enabled self.auto_backups_enabled = not self.auto_backups_enabled
self.kiauh_settings.set( self.kiauh_settings.set(
"kiauh", "backup_before_update", self.auto_backups_enabled "kiauh",
"backup_before_update",
self.auto_backups_enabled,
) )
self.kiauh_settings.save() self.kiauh_settings.save()