mirror of
https://github.com/dw-0/kiauh.git
synced 2026-01-02 12:43:35 +05:00
Compare commits
1 Commits
0a973079b5
...
458c117ae9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
458c117ae9 |
@@ -8,7 +8,6 @@
|
|||||||
# ======================================================================= #
|
# ======================================================================= #
|
||||||
|
|
||||||
import textwrap
|
import textwrap
|
||||||
import time
|
|
||||||
|
|
||||||
from components.klipper_firmware.flash_options import (
|
from components.klipper_firmware.flash_options import (
|
||||||
FlashOptions,
|
FlashOptions,
|
||||||
@@ -132,10 +131,9 @@ class KlipperFlashCommandMenu(BaseMenu):
|
|||||||
# noinspection PyUnusedLocal
|
# noinspection PyUnusedLocal
|
||||||
# noinspection PyMethodMayBeStatic
|
# noinspection PyMethodMayBeStatic
|
||||||
class KlipperSelectMcuConnectionMenu(BaseMenu):
|
class KlipperSelectMcuConnectionMenu(BaseMenu):
|
||||||
def __init__(self, previous_menu: BaseMenu, standalone: bool = False):
|
def __init__(self, previous_menu: BaseMenu):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
self.__standalone = standalone
|
|
||||||
self.previous_menu: BaseMenu = previous_menu
|
self.previous_menu: BaseMenu = previous_menu
|
||||||
self.options = {
|
self.options = {
|
||||||
"1": self.select_usb,
|
"1": self.select_usb,
|
||||||
@@ -195,16 +193,8 @@ class KlipperSelectMcuConnectionMenu(BaseMenu):
|
|||||||
if len(self.flash_options.mcu_list) < 1:
|
if len(self.flash_options.mcu_list) < 1:
|
||||||
Logger.print_warn("No MCUs found!")
|
Logger.print_warn("No MCUs found!")
|
||||||
Logger.print_warn("Make sure they are connected and repeat this step.")
|
Logger.print_warn("Make sure they are connected and repeat this step.")
|
||||||
|
else:
|
||||||
# if standalone is True, we only display the MCUs to the user and return
|
self.goto_next_menu()
|
||||||
if self.__standalone and len(self.flash_options.mcu_list) > 0:
|
|
||||||
Logger.print_ok("The following MCUs were found:", prefix=False)
|
|
||||||
for i, mcu in enumerate(self.flash_options.mcu_list):
|
|
||||||
print(f" ● MCU #{i}: {COLOR_CYAN}{mcu}{RESET_FORMAT}")
|
|
||||||
time.sleep(3)
|
|
||||||
return
|
|
||||||
|
|
||||||
self.goto_next_menu()
|
|
||||||
|
|
||||||
def goto_next_menu(self, **kwargs):
|
def goto_next_menu(self, **kwargs):
|
||||||
KlipperSelectMcuIdMenu(previous_menu=self).run()
|
KlipperSelectMcuIdMenu(previous_menu=self).run()
|
||||||
|
|||||||
@@ -19,11 +19,12 @@ class BaseExtension(ABC):
|
|||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def install_extension(self, **kwargs) -> None:
|
def install_extension(self, **kwargs) -> None:
|
||||||
raise NotImplementedError
|
raise NotImplementedError(
|
||||||
|
"Subclasses must implement the install_extension method"
|
||||||
def update_extension(self, **kwargs) -> None:
|
)
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def remove_extension(self, **kwargs) -> None:
|
def remove_extension(self, **kwargs) -> None:
|
||||||
raise NotImplementedError
|
raise NotImplementedError(
|
||||||
|
"Subclasses must implement the remove_extension method"
|
||||||
|
)
|
||||||
@@ -58,4 +58,4 @@ class AdvancedMenu(BaseMenu):
|
|||||||
KlipperFlashMethodMenu(previous_menu=self).run()
|
KlipperFlashMethodMenu(previous_menu=self).run()
|
||||||
|
|
||||||
def get_id(self, **kwargs):
|
def get_id(self, **kwargs):
|
||||||
KlipperSelectMcuConnectionMenu(previous_menu=self, standalone=True).run()
|
KlipperSelectMcuConnectionMenu(previous_menu=self).run()
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ import textwrap
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Type, Dict
|
from typing import Type, Dict
|
||||||
|
|
||||||
from extensions import EXTENSION_ROOT
|
from core.base_extension import BaseExtension
|
||||||
from extensions.base_extension import BaseExtension
|
|
||||||
from core.menus.base_menu import BaseMenu
|
from core.menus.base_menu import BaseMenu
|
||||||
from utils.constants import RESET_FORMAT, COLOR_CYAN, COLOR_YELLOW
|
from utils.constants import RESET_FORMAT, COLOR_CYAN, COLOR_YELLOW
|
||||||
|
|
||||||
@@ -32,8 +31,9 @@ class ExtensionsMenu(BaseMenu):
|
|||||||
|
|
||||||
def discover_extensions(self) -> Dict[str, BaseExtension]:
|
def discover_extensions(self) -> Dict[str, BaseExtension]:
|
||||||
ext_dict = {}
|
ext_dict = {}
|
||||||
|
extensions_dir = Path(__file__).resolve().parents[2].joinpath("extensions")
|
||||||
|
|
||||||
for ext in EXTENSION_ROOT.iterdir():
|
for ext in extensions_dir.iterdir():
|
||||||
metadata_json = Path(ext).joinpath("metadata.json")
|
metadata_json = Path(ext).joinpath("metadata.json")
|
||||||
if not metadata_json.exists():
|
if not metadata_json.exists():
|
||||||
continue
|
continue
|
||||||
@@ -95,18 +95,16 @@ class ExtensionSubmenu(BaseMenu):
|
|||||||
def __init__(self, previous_menu: BaseMenu, extension: BaseExtension):
|
def __init__(self, previous_menu: BaseMenu, extension: BaseExtension):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
|
self.previous_menu = previous_menu
|
||||||
|
self.options = {
|
||||||
|
"1": extension.install_extension,
|
||||||
|
"2": extension.remove_extension,
|
||||||
|
}
|
||||||
|
|
||||||
self.extension = extension
|
self.extension = extension
|
||||||
self.extension_name = extension.metadata.get("display_name")
|
self.extension_name = extension.metadata.get("display_name")
|
||||||
self.extension_desc = extension.metadata.get("description")
|
self.extension_desc = extension.metadata.get("description")
|
||||||
|
|
||||||
self.previous_menu = previous_menu
|
|
||||||
self.options["1"] = extension.install_extension
|
|
||||||
if self.extension.metadata.get("updates"):
|
|
||||||
self.options["2"] = extension.update_extension
|
|
||||||
self.options["3"] = extension.remove_extension
|
|
||||||
else:
|
|
||||||
self.options["2"] = extension.remove_extension
|
|
||||||
|
|
||||||
def print_menu(self) -> None:
|
def print_menu(self) -> None:
|
||||||
header = f" [ {self.extension_name} ] "
|
header = f" [ {self.extension_name} ] "
|
||||||
color = COLOR_YELLOW
|
color = COLOR_YELLOW
|
||||||
@@ -129,13 +127,7 @@ class ExtensionSubmenu(BaseMenu):
|
|||||||
"""
|
"""
|
||||||
|-------------------------------------------------------|
|
|-------------------------------------------------------|
|
||||||
| 1) Install |
|
| 1) Install |
|
||||||
|
| 2) Remove |
|
||||||
"""
|
"""
|
||||||
)[1:]
|
)[1:]
|
||||||
|
|
||||||
if self.extension.metadata.get("updates"):
|
|
||||||
menu += "| 2) Update |\n"
|
|
||||||
menu += "| 3) Remove |\n"
|
|
||||||
else:
|
|
||||||
menu += "| 2) Remove |\n"
|
|
||||||
|
|
||||||
print(menu, end="")
|
print(menu, end="")
|
||||||
@@ -22,7 +22,7 @@ from core.menus import FooterType
|
|||||||
from core.menus.advanced_menu import AdvancedMenu
|
from core.menus.advanced_menu import AdvancedMenu
|
||||||
from core.menus.backup_menu import BackupMenu
|
from core.menus.backup_menu import BackupMenu
|
||||||
from core.menus.base_menu import BaseMenu
|
from core.menus.base_menu import BaseMenu
|
||||||
from extensions.extensions_menu import ExtensionsMenu
|
from core.menus.extensions_menu import ExtensionsMenu
|
||||||
from core.menus.install_menu import InstallMenu
|
from core.menus.install_menu import InstallMenu
|
||||||
from core.menus.remove_menu import RemoveMenu
|
from core.menus.remove_menu import RemoveMenu
|
||||||
from core.menus.settings_menu import SettingsMenu
|
from core.menus.settings_menu import SettingsMenu
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
# ======================================================================= #
|
|
||||||
# Copyright (C) 2020 - 2024 Dominik Willner <th33xitus@gmail.com> #
|
|
||||||
# #
|
|
||||||
# This file is part of KIAUH - Klipper Installation And Update Helper #
|
|
||||||
# https://github.com/dw-0/kiauh #
|
|
||||||
# #
|
|
||||||
# This file may be distributed under the terms of the GNU GPLv3 license #
|
|
||||||
# ======================================================================= #
|
|
||||||
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
EXTENSION_ROOT = Path(__file__).resolve().parents[1].joinpath("extensions")
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from typing import List
|
|||||||
|
|
||||||
from components.klipper.klipper import Klipper
|
from components.klipper.klipper import Klipper
|
||||||
from core.backup_manager.backup_manager import BackupManager
|
from core.backup_manager.backup_manager import BackupManager
|
||||||
from extensions.base_extension import BaseExtension
|
from core.base_extension import BaseExtension
|
||||||
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 extensions.gcode_shell_cmd import (
|
from extensions.gcode_shell_cmd import (
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from components.klipper.klipper_dialogs import (
|
|||||||
print_instance_overview,
|
print_instance_overview,
|
||||||
DisplayType,
|
DisplayType,
|
||||||
)
|
)
|
||||||
from extensions.base_extension import BaseExtension
|
from core.base_extension import BaseExtension
|
||||||
from core.instance_manager.base_instance import BaseInstance
|
from core.instance_manager.base_instance import BaseInstance
|
||||||
from core.instance_manager.instance_manager import InstanceManager
|
from core.instance_manager.instance_manager import InstanceManager
|
||||||
from core.menus.base_menu import BaseMenu
|
from core.menus.base_menu import BaseMenu
|
||||||
|
|||||||
Reference in New Issue
Block a user