From 606686b33c5e0a4dda35ea78b148d9e1a762e512 Mon Sep 17 00:00:00 2001 From: CodeMasterCody3D <130433943+CodeMasterCody3D@users.noreply.github.com> Date: Tue, 21 Jan 2025 03:40:50 -0600 Subject: [PATCH] droidklipp --- .vs/ProjectSettings.json | 3 +++ .vs/VSWorkspaceState.json | 11 +++++++++++ .vs/kiauhPlusDroidKlipp/v16/.suo | Bin 0 -> 37376 bytes .vs/slnx.sqlite | Bin 0 -> 167936 bytes kiauh/components/droidklipp/droidklipp.py | 21 +++++++++++++++++++++ kiauh/core/menus/install_menu.py | 12 +++++++++--- kiauh/core/menus/main_menu.py | 1 + kiauh/utils/common.py | 2 ++ 8 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 .vs/ProjectSettings.json create mode 100644 .vs/VSWorkspaceState.json create mode 100644 .vs/kiauhPlusDroidKlipp/v16/.suo create mode 100644 .vs/slnx.sqlite create mode 100644 kiauh/components/droidklipp/droidklipp.py 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 0000000000000000000000000000000000000000..d4b02194342a7a78ecbf10a69d7b82984a521886 GIT binary patch literal 37376 zcmeHQ3y@pYdA3bS7jb36myMrlH?= zAJWy;mG($0?XFxM&98gzx#yn$Kkxti|9{SX>BY-mf8x*H_l9J1d!%!vU%h*Qbe<*L zW${awNz!|8e-7YR@4ovkAMrW7UDrV+a8SzOSCD$7VJVAiUYcc93cGdE>QbFww7^?G zx#Zx9|C)Z)wE^)?MfAv{z?hTnkUj|PN%)4P6APqL`FI^#ptZOwpE}=t3BhQ-n!8QP zNNH(QlBKvbjsGc0k#3P@P!cInla*8>UaiYk=^R(1`2PTj-DxCf=AZeV0VO$x?jl({054CcxEzYXCifYXO@9TLBjXwgIjKydSU~Fa+2F&{JsL{|!iU zFJJ&L2)G;&1q=g50Q&%I0jg( z9&xX-^bPj^Re<#Xd;kA+gmL^}I*aN59EZ&D#!gc+_agoOy$0RQq~9s;+>1Q^HsE&v z_W^zv@G-#sfR6({0r(`~_W-{ScmVJzz=MEK1K1uOGOqL!PUHR&z-IxU13U`&Jm4|F z7XW7fe*`e&KMDU+fG=9YI;H%qbbb%?zYKWA$cObA{r`sWe+PWuc>X%BZvfsj?*9YV z|1|veciVM;i&O-ckp{Pu)nLlPc|;MC2R-$i$^V>-NTjh|T=UsS;YoAAfExtIlLP0K z0k@OKRg~}1-O4uzy(%vqaN@j2W&py47TS@)D-uOQu`J|8(mip>sXgkIquFtLouou;dT6**Y_`Yu3jbWUP zW5lBr;4X}Q32pW3!8pt@kt49a4)#_^ET}$?boMrZ|1)@x>t(tF(n0Bv)Kit;9;`xBC;?@G8R)tu@IMT^kDsHV$K0Yw zlPJ$AP4bb~ux3%pW0+|&c*0t!=YZcuKAG!v(fTLfXQpY#e*pAkfR%En!zcmLl9TSP zSqi3n?_BO`7o&gdie_ZBpyb^HrT2pYx6c>#x(9}R18%Q( zz&jN2j*N^91?J~=9Z0G1kyKhy_sp5uWj|tCs~`s@FSU(@Fq+RL5p7${sl*%$BCo_U zO17xRQdzYir_)Dyhy2f-^coJdc)hki^V$5IFVO3q89?V1;s)tt+Hiia@j`8KiuEz>(g`3C391_1^R<%d+?eC zp_&cLTAsbK;t$KANv~VE9TLw(X=FKqndl~rejI%zTQzGR5nE$Pa!)u+WrAOa|?_0*52>wv%&1w(u zYj}y9t~y3_$P);9(+C#9@2gIt6hi!zd-ecC@xO|=F9GO8@CWs%j{nW%|23p!mcO0< zaOQs;QEP#$fATZb2Z`o?KjM;irnBRx9xM*-LsSDt{+B$+6#!BEA41$({1@?4>qfp) z0W3t1$$!1C0sJ4VgP&Z#&VT2?mFKmxK=hif8UCMTwVBE`IF7^QUnsZNSh|>P2E0(Z z0go(B=cgzWru!4ukhBvV;~~r$)LW|XkAmtLeB~U(G_IN)HJ?u-k1}$195K1ZQ_%`c zE_A# zPJC_sqsgBC{>qvS_r|uJ`!;jLR%CVcdD%}*?D*S_FO~VnI=pO~SY*p&9PM~*ykP$H^@)7cKI+jcd~yl(C^339rAnq zWbJ+K{{FDeNssi0`@)f^fBxc%MMs+|s!ho*uKu0YdF%zEj$^M2(5B3hjLP*NLoDty zOE~^eG7!Tk#MyzP7X7j|ULP%m>f_A6$|HwjFW>9=?3V9L?tJ4%8y4$Qw?})kH3_lnKMWXQYOx+)#IjyJCp(Op7RLpK4?2azUV3d=SJH6P)YHvnD$c{4wNJSzDl$|}h(h5`M62w*4R1AtwC-2jRbIH~Og z3;+fJLx3n?7%&3Z2e=Vn&Erj$`&-~21>6ca2p9v50}cTu0EYp$0e%zkTL7jLGp_U> zh5wjwKZ$D`kN_xvBwz|~9FPLs0hk6*5|;sF0XYEExf9nsKm`;4MZjHvy8$NvjB^jJ zCjoQDJ;Mm6aPKr%cI7|f@}DQq>1_GW%ICjgkbaJ#PYq$b^`Vb@(BC8Y51{}1q(_%^ z{3owYS&59knU?Icz`8H}^Har*Tb_U0cl}jwedGLH54^SKD?5Jj`uDHMZu*dEI<1b8Ia`{6KpZfBpo7O#d#wq8u`0x7lf8P?-zpja*mfl>8P)m_TJLI~e zaR1>)dVc(#BhRgQ?cyJQbL#ZZ9)9_Yp+7(K4?o@dw&&;D|L4Pw`PEvpoquk${&Scq zsE^8EHZ5z6dN6mM!2B1&{K@i5q5W{B#5GwG?X?H}iS`af^s2O0hpHArZjkylYS+l+ zh}l1oH#iS~DMg5j;oQR#p^E}ryh6V+s?kYZhiQRJ-i4*jel`huIY*if@<&bnL|#P{ z|ILW|{&V#dZqv#xtw}wzD9a-5X#?yAC(wry9KvWbpj}Ojl~?GWD*ABcQ|G(N{8#GV z4g)`JPmY5I&gl!eo+j`gK%$fZ(3$d%JZhVxSh)?EmdOgJDb#EgJAt1(9(g*^@}EK6 z%P?=!>GfYU_~*g`EkS?B`tL>kUxNVhoTB(;#C_JNf4iPpZ~aNMJ+=k*EVCV2v6lVR zKa%GqPb`X`!@<)=61Sj5-+>;=UTp7q6B-9=M67Yy4E(F{jJWA)M5_osf;*%5C95{B zq=Z_m{^t}BG^qh8(O}hAh-y82L2qw3q-$Zw{5C~{P5vc}d!=fC48@|gJS`#vyZp5* zf9&f2|3B#eMf49`Ti0@?{$UFuh>kzsMci*035ww7dcKyU{$Vp7Qbr+)|6dUIO(Q`O z{FE`&a>TzL4|@Qj_+Lfb7V3W**1x?5{AT$ll%!lt7mgM(Gl8hz?) z{m^7WE~MA2qfBWr?{75TXBwY)=4*$){mAR5U)Vb`NO}^nUtaPJ`2W85$#<^)=G(vc zEBMd+>_^_Ar!T(YY4|sNC|Lz&jgHd@ZRpA z$ID-D&k*Xlm{)dZm0}?;r+a%wi<9Y8e7`a~o|{&(yC=h8xi8)q@*A%iDZ(>3mqE*pDfrA$S`UWU|uVo*=#FA8@n@$&-&J4!kCWe z`zFrI;CTU1maHsxWzE$T?K%sZ9EWS!7}k=MSw-L@ub;t>maJUs<{gah3N2)R%k& zAOWkE71`xOotcX`WY`7dPLlrVEU1$VR`QhRImz!jvwl>xS4zS# z>@)UUoPe}1c-G{GyTLMAZpbNj+Nf-=n>a>$%JlViCrRHv3-Xl0{6h&d`_K2zg8b-v zAg57Nv^~>DH?ER8z3ovyl|E}~=`Qpl_NF}Yl!EM(t?!kypq7}gyv7Yu-b@=4=B)i= zpLJ);0Z6;41)%;T56#wLO$(9L&O@O#i1v_n=Le_F<*VuJ&zLI0u2U$!AY z6hGHYCVuPw-^zWz^>+Q5*l8QnxcrN6o8{m76$v#aY1B{>ExOEOnfFW4rk5&DdQO+7 zpSC+scAJB83#+!d&{v*%?p=oDtoHlml$?C4oB|sNV_#wo=(BXS6|$HWTszry+t-1!HQOMLqT^SG!k(KgM9&a#5*wH_D4nr zf>Hl)U)UR(M_FiRF)+uey(^s5=!&MVP3E+&9m18~Kvau5u?Y)wZF{CuC*c%HR)Maj z5jP{z7L|^Evp>=fll~jM5V=`@?$TX-pY_$PbC_bRsxSoVXiXWC5!?1D<;@<~rl|juPfX|0t6a>2w zi_Zq&V+IBQLy$ds@g{#mSijAK%S*uKhf>NiUj6(#9V?ImtGOMrx~6GI@m|DnNqiKi z=*NJWEsqvY+~rPwpY~pyZ)tyaD|!M~BPsl=u+q{`=^sSnR(|M36#unl!qkkMfqQ6 z;1q`5WEyKa4`NT$klWz>st-@yS5n*J!@4+cX?CG1Wp-h?|Cl5s?0q%Z7N z;z2nc35Nn<*}qzPuz4YEP5qIBR2&Bv3QENtMB<`S;~E6n_iqUj($bZ7m~@-+4fp!L-cxO83VDD|rmT&@2p z9mFbd)>Q3-Sle1z&2+wttS`AXnOf7*P}jiY7L?hGmKowL__^UZ+SW2_rh#8%eaWHB z8hG4-GW%qy%+^2u7lwcNbp9gaSLGpO4d~w+h}wdJEtM-g)Edx5SK?%Kscn*T^;C7^ zhGVq2{HQggqc)KG{l*>NTr&HI#>rdojn1%tsGW_^p#o_Cuv)@l;?0_7nTLt<@Izty zhtgbR9alw}k*AiF*d|%>Wh+tZ>@HfO&n{_+Vw10Vu(xdt6Q#EaTM_%&_seruXC<4z zY;B~OUWX+>M|8aM@?fxup~=?UTaZKxX5Gh1LwM!)AC_mxZf1a~Sdx6GiF&b&8CLu) zOsWO-KmFC={ClQ)p;ONNs^U!u<|2jtZxV|NYg<2W148MSAu znB#}hqH+P7)L;$1i*d({bHw;$&-BrwgP;?KRE?yRbb{Yxlh$4+-S*;Ic$#-xvGb+! z3&OM%n$UK<_^`W$=k3&U+>7wo5{)pU`z4}Z!Owe&)HP-uC>M;Q5yB{x|(M^#7bXS1gtZ-HLA>3Mon(H*;;Hp^TD2Bq-}h?X zo6X67<#gZWUz*nci1IJh-_F$)06c*5OwE~PCA2dA+sIuWOaJ1X{`H9J@uYKktY>Ss XzSfV!i=RXEFI9B;LjBtwG3oyR07EXl literal 0 HcmV?d00001 diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..94c8977d3e660793a0310f71b24cc16017be68fe GIT binary patch literal 167936 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 a5Z5<|_1~S<|GYtr-;-7B5BMK$6#or!pTFe* literal 0 HcmV?d00001 diff --git a/kiauh/components/droidklipp/droidklipp.py b/kiauh/components/droidklipp/droidklipp.py new file mode 100644 index 0000000..65b24d8 --- /dev/null +++ b/kiauh/components/droidklipp/droidklipp.py @@ -0,0 +1,21 @@ +import os +import subprocess + +def install_droidklipp(): + try: + print("Installing DroidKlipp...") + subprocess.run(['sudo', 'apt', 'install', '-y', 'adb', 'tmux'], check=True) + + droidklipp_repo_url = "https://github.com/CodeMasterCody3D/DroidKlipp.git" + if not os.path.isdir('DroidKlipp'): + subprocess.run(['git', 'clone', droidklipp_repo_url], check=True) + + os.chdir('DroidKlipp') + subprocess.run(['sudo', 'chmod', '+x', 'droidklipp.sh'], check=True) + 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}") diff --git a/kiauh/core/menus/install_menu.py b/kiauh/core/menus/install_menu.py index a5fbe9c..f2516ba 100644 --- a/kiauh/core/menus/install_menu.py +++ b/kiauh/core/menus/install_menu.py @@ -40,7 +40,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,6 +52,7 @@ class InstallMenu(BaseMenu): "6": Option(method=self.install_fluidd_config), "7": Option(method=self.install_klipperscreen), "8": Option(method=self.install_crowsnest), + "9": Option(method=self.install_droidklipp), # Add DroidKlipp option } def print_menu(self) -> None: @@ -61,15 +61,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:] @@ -106,3 +108,7 @@ class InstallMenu(BaseMenu): def install_crowsnest(self, **kwargs) -> None: install_crowsnest() + + # Add this method to handle DroidKlipp installation + def install_droidklipp(self, **kwargs) -> None: + install_droidklipp() # Call the function to install DroidKlipp diff --git a/kiauh/core/menus/main_menu.py b/kiauh/core/menus/main_menu.py index 7ab4c8b..6ae9b0d 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 2880e6d..d5cbb93 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