mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-11 17:44:28 +05:00
refactor: clone repo in repo switch routine only if there is already a repo present
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
@@ -9,15 +9,19 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import textwrap
|
import textwrap
|
||||||
|
from pathlib import Path
|
||||||
from typing import Literal, Tuple, Type
|
from typing import Literal, Tuple, Type
|
||||||
|
|
||||||
|
from components.klipper import KLIPPER_DIR
|
||||||
from components.klipper.klipper_utils import get_klipper_status
|
from components.klipper.klipper_utils import get_klipper_status
|
||||||
|
from components.moonraker import MOONRAKER_DIR
|
||||||
from components.moonraker.moonraker_utils import get_moonraker_status
|
from components.moonraker.moonraker_utils import get_moonraker_status
|
||||||
from core.logger import DialogType, Logger
|
from core.logger import DialogType, Logger
|
||||||
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, RepoSettings
|
from core.settings.kiauh_settings import KiauhSettings, RepoSettings
|
||||||
from core.types.color import Color
|
from core.types.color import Color
|
||||||
|
from core.types.component_status import ComponentStatus
|
||||||
from procedures.switch_repo import run_switch_repo_routine
|
from procedures.switch_repo import run_switch_repo_routine
|
||||||
from utils.git_utils import get_repo_name
|
from utils.git_utils import get_repo_name
|
||||||
from utils.input_utils import get_confirm, get_string_input
|
from utils.input_utils import get_confirm, get_string_input
|
||||||
@@ -144,7 +148,7 @@ class SettingsMenu(BaseMenu):
|
|||||||
|
|
||||||
return repo, branch
|
return repo, branch
|
||||||
|
|
||||||
def _set_repo(self, repo_name: Literal["klipper", "moonraker"]) -> None:
|
def _set_repo(self, repo_name: Literal["klipper", "moonraker"], repo_dir: Path) -> None:
|
||||||
repo_url, branch = self._gather_input()
|
repo_url, branch = self._gather_input()
|
||||||
display_name = repo_name.capitalize()
|
display_name = repo_name.capitalize()
|
||||||
Logger.print_dialog(
|
Logger.print_dialog(
|
||||||
@@ -168,22 +172,26 @@ class SettingsMenu(BaseMenu):
|
|||||||
Logger.print_ok("Changes saved!")
|
Logger.print_ok("Changes saved!")
|
||||||
else:
|
else:
|
||||||
Logger.print_info(
|
Logger.print_info(
|
||||||
f"Skipping change of {display_name} source repository ..."
|
f"Changing of {display_name} source repository canceled ..."
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
Logger.print_status(f"Switching to {display_name}'s new source repository ...")
|
self._switch_repo(repo_name, repo_dir)
|
||||||
self._switch_repo(repo_name)
|
|
||||||
|
def _switch_repo(self, name: Literal["klipper", "moonraker"], repo_dir: Path ) -> None:
|
||||||
|
if not repo_dir.exists():
|
||||||
|
return
|
||||||
|
|
||||||
|
Logger.print_status(f"Switching to {name.capitalize()}'s new source repository ...")
|
||||||
|
|
||||||
def _switch_repo(self, name: Literal["klipper", "moonraker"]) -> None:
|
|
||||||
repo: RepoSettings = self.settings[name]
|
repo: RepoSettings = self.settings[name]
|
||||||
run_switch_repo_routine(name, repo)
|
run_switch_repo_routine(name, repo)
|
||||||
|
|
||||||
def set_klipper_repo(self, **kwargs) -> None:
|
def set_klipper_repo(self, **kwargs) -> None:
|
||||||
self._set_repo("klipper")
|
self._set_repo("klipper", KLIPPER_DIR)
|
||||||
|
|
||||||
def set_moonraker_repo(self, **kwargs) -> None:
|
def set_moonraker_repo(self, **kwargs) -> None:
|
||||||
self._set_repo("moonraker")
|
self._set_repo("moonraker", MOONRAKER_DIR)
|
||||||
|
|
||||||
def toggle_mainsail_release(self, **kwargs) -> None:
|
def toggle_mainsail_release(self, **kwargs) -> None:
|
||||||
self.mainsail_unstable = not self.mainsail_unstable
|
self.mainsail_unstable = not self.mainsail_unstable
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ def run_switch_repo_routine(
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
# step 2: backup old repo and env
|
# step 2: backup old repo and env
|
||||||
org, repo = get_repo_name(repo_dir)
|
org, _ = get_repo_name(repo_dir)
|
||||||
backup_dir = backup_dir.joinpath(org)
|
backup_dir = backup_dir.joinpath(org)
|
||||||
bm = BackupManager()
|
bm = BackupManager()
|
||||||
repo_dir_backup_path = bm.backup_directory(
|
repo_dir_backup_path = bm.backup_directory(
|
||||||
|
|||||||
Reference in New Issue
Block a user