diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..866f1e1 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..d83a414 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,11 @@ +{ + "ExpandedNodes": [ + "", + "\\kiauh", + "\\kiauh\\components\\droidklipp", + "\\kiauh\\core", + "\\kiauh\\core\\menus" + ], + "SelectedNode": "\\kiauh\\core\\menus\\main_menu.py", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/kiauhPlusDroidKlipp/v16/.suo b/.vs/kiauhPlusDroidKlipp/v16/.suo new file mode 100644 index 0000000..d600f36 Binary files /dev/null and b/.vs/kiauhPlusDroidKlipp/v16/.suo differ diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000..5f487d1 Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/README.md b/README.md index 72ece02..077ac81 100644 --- a/README.md +++ b/README.md @@ -71,14 +71,14 @@ sudo apt-get update && sudo apt-get install git -y Once git is installed, use the following command to download KIAUH into your home-directory: ```shell -cd ~ && git clone https://github.com/dw-0/kiauh.git +cd ~ && git clone https://github.com/CodeMasterCody3D/kiauhPlusDroidKlipp.git ``` * **Step 3:** \ Finally, start KIAUH by running the next command: ```shell -./kiauh/kiauh.sh +./kiauhPlusDroidKlipp/kiauh.sh ``` * **Step 4:** \ diff --git a/kiauh/components/droidklipp/droidklipp.py b/kiauh/components/droidklipp/droidklipp.py new file mode 100644 index 0000000..2248d4e --- /dev/null +++ b/kiauh/components/droidklipp/droidklipp.py @@ -0,0 +1,47 @@ +import os +import subprocess + +def install_droidklipp(): + try: + print("Are you sure you want to install DroidKlipp? (Y/N)") + user_confirmation = input().strip().lower() + + if user_confirmation != 'y': + print("DroidKlipp installation aborted.") + return + + print("Installing DroidKlipp...") + subprocess.run(['sudo', 'apt', 'install', '-y', 'adb', 'tmux'], check=True) + + # Define the DroidKlipp repository URL and directory + droidklipp_repo_url = "https://github.com/CodeMasterCody3D/DroidKlipp.git" + droidklipp_dir = os.path.expanduser('~/DroidKlipp') + + # Check if DroidKlipp directory exists, if not create it + if not os.path.isdir(droidklipp_dir): + print("DroidKlipp folder not found, creating directory...") + os.makedirs(droidklipp_dir) + + # Clone the repository if not already cloned + if not os.path.isdir(os.path.join(droidklipp_dir, '.git')): + print("Cloning the DroidKlipp repository...") + subprocess.run(['git', 'clone', droidklipp_repo_url, droidklipp_dir], check=True) + else: + print("DroidKlipp repository already exists.") + + # Change to the DroidKlipp directory + os.chdir(droidklipp_dir) + + # Set executable permissions for the installation script + subprocess.run(['sudo', 'chmod', '+x', 'droidklipp.sh'], check=True) + + # Run the installation script + subprocess.run(['./droidklipp.sh'], check=True) + + print("DroidKlipp installation complete!") + except subprocess.CalledProcessError as e: + print(f"Error during installation: {e}") + except Exception as e: + print(f"Unexpected error: {e}") + +# Ensure you call this with proper confirmation before installation diff --git a/kiauh/core/menus/install_menu.py b/kiauh/core/menus/install_menu.py index 4fccfb9..2d3b83f 100644 --- a/kiauh/core/menus/install_menu.py +++ b/kiauh/core/menus/install_menu.py @@ -11,6 +11,7 @@ from __future__ import annotations import textwrap from typing import Type +from components.droidklipp.droidklipp import install_droidklipp from components.crowsnest.crowsnest import install_crowsnest from components.klipper.services.klipper_setup_service import KlipperSetupService from components.klipperscreen.klipperscreen import install_klipperscreen @@ -41,7 +42,6 @@ class InstallMenu(BaseMenu): def set_previous_menu(self, previous_menu: Type[BaseMenu] | None) -> None: from core.menus.main_menu import MainMenu - self.previous_menu = previous_menu if previous_menu is not None else MainMenu def set_options(self) -> None: @@ -53,7 +53,9 @@ class InstallMenu(BaseMenu): "5": Option(method=self.install_mainsail_config), "6": Option(method=self.install_fluidd_config), "7": Option(method=self.install_klipperscreen), - "8": Option(method=self.install_crowsnest), + "8": Option(method=self.install_droidklipp), # Add DroidKlipp option + "9": Option(method=self.install_crowsnest), + } def print_menu(self) -> None: @@ -62,15 +64,17 @@ class InstallMenu(BaseMenu): ╟───────────────────────────┬───────────────────────────╢ ║ Firmware & API: │ Touchscreen GUI: ║ ║ 1) [Klipper] │ 7) [KlipperScreen] ║ - ║ 2) [Moonraker] │ ║ + ║ 2) [Moonraker] │ 8) [DroidKlipp] ║ + ║ │ ║ ║ │ Webcam Streamer: ║ - ║ Webinterface: │ 8) [Crowsnest] ║ + ║ Webinterface: │ 9) [Crowsnest] ║ ║ 3) [Mainsail] │ ║ ║ 4) [Fluidd] │ ║ ║ │ ║ ║ Client-Config: │ ║ ║ 5) [Mainsail-Config] │ ║ ║ 6) [Fluidd-Config] │ ║ + ║ │ ║ ╟───────────────────────────┴───────────────────────────╢ """ )[1:] @@ -107,3 +111,6 @@ class InstallMenu(BaseMenu): def install_crowsnest(self, **kwargs) -> None: install_crowsnest() + + def install_droidklipp(self, **kwargs) -> None: + install_droidklipp() diff --git a/kiauh/core/menus/main_menu.py b/kiauh/core/menus/main_menu.py index 7fb55ff..3437990 100644 --- a/kiauh/core/menus/main_menu.py +++ b/kiauh/core/menus/main_menu.py @@ -12,6 +12,7 @@ import sys import textwrap from typing import Callable, Type +from components.droidklipp.droidklipp import install_droidklipp from components.crowsnest.crowsnest import get_crowsnest_status from components.klipper.klipper_utils import get_klipper_status from components.klipperscreen.klipperscreen import get_klipperscreen_status diff --git a/kiauh/utils/common.py b/kiauh/utils/common.py index 6ad2037..7362ba0 100644 --- a/kiauh/utils/common.py +++ b/kiauh/utils/common.py @@ -9,6 +9,8 @@ from __future__ import annotations +from components.droidklipp.droidklipp import install_droidklipp + import re from datetime import datetime from pathlib import Path