From 05b5664062e8ac671a08bedfad344f07b1ea3ac4 Mon Sep 17 00:00:00 2001 From: Patrick Gehrsitz Date: Fri, 10 May 2024 21:28:15 +0200 Subject: [PATCH] fix: fix crowsnest installer (#470) * fix: fix crowsnest installer Signed-off-by: mryel00 * chore: remove unnecessary code This check is made inside the called tool too. Therefore removing it here. Signed-off-by: mryel00 --------- Signed-off-by: mryel00 --- kiauh/components/crowsnest/crowsnest.py | 57 ++++++++++++------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/kiauh/components/crowsnest/crowsnest.py b/kiauh/components/crowsnest/crowsnest.py index b2ca8d0..29f0c94 100644 --- a/kiauh/components/crowsnest/crowsnest.py +++ b/kiauh/components/crowsnest/crowsnest.py @@ -28,7 +28,6 @@ from utils.git_utils import ( get_remote_commit, git_pull_wrapper, ) -from utils.input_utils import get_confirm from utils.logger import Logger from utils.sys_utils import ( parse_packages_from_file, @@ -48,23 +47,37 @@ def install_crowsnest() -> None: instances: List[Klipper] = im.find_instances() if len(instances) > 1: - Logger.print_status("Multi instance install detected ...") - info = textwrap.dedent(""" - Crowsnest is NOT designed to support multi instances. - A workaround for this is to choose the most used instance as a 'master' - Use this instance to set up your 'crowsnest.conf' and steering it's service. - Found the following instances: - """)[:-1] - print(info, end="") - for instance in instances: - print(f"● {instance.data_dir_name}") + configure_multi_instance(instances) - Logger.print_status("\nLaunching crowsnest's configuration tool ...") - - if not get_confirm("Continue with configuration?", False, allow_go_back=True): - Logger.print_info("Installation aborted by user ... Exiting!") + # Step 4: Launch crowsnest installer + print(f"{COLOR_CYAN}Installer will prompt you for sudo password!{RESET_FORMAT}") + Logger.print_status("Launching crowsnest installer ...") + try: + run( + f"sudo make install BASE_USER={CURRENT_USER}", + cwd=CROWSNEST_DIR, + shell=True, + check=True, + ) + except CalledProcessError as e: + Logger.print_error(f"Something went wrong! Please try again...\n{e}") return + +def configure_multi_instance(instances: List[Klipper]) -> None: + Logger.print_status("Multi instance install detected ...") + info = textwrap.dedent(""" + Crowsnest is NOT designed to support multi instances. + A workaround for this is to choose the most used instance as a 'master' + Use this instance to set up your 'crowsnest.conf' and steering it's service. + Found the following instances: + """)[:-1] + print(info, end="") + for instance in instances: + print(f"● {instance.data_dir_name}") + + Logger.print_status("\nLaunching crowsnest's configuration tool ...") + config = Path(CROWSNEST_DIR).joinpath("tools/.config") try: run( @@ -83,20 +96,6 @@ def install_crowsnest() -> None: Logger.print_error("Generating .config failed, installation aborted") return - # Step 4: Launch crowsnest installer - print(f"{COLOR_CYAN}Installer will prompt you for sudo password!{RESET_FORMAT}") - Logger.print_status("Launching crowsnest installer ...") - try: - run( - f"sudo make install BASE_USER={CURRENT_USER}", - cwd=CROWSNEST_DIR, - shell=True, - check=True, - ) - except CalledProcessError as e: - Logger.print_error(f"Something went wrong! Please try again...\n{e}") - return - def update_crowsnest() -> None: try: