fix: fix crowsnest installer (#470)
* fix: fix crowsnest installer Signed-off-by: mryel00 <mryel00.github@gmail.com> * chore: remove unnecessary code This check is made inside the called tool too. Therefore removing it here. Signed-off-by: mryel00 <mryel00.github@gmail.com> --------- Signed-off-by: mryel00 <mryel00.github@gmail.com>
This commit was merged in pull request #470.
This commit is contained in:
@@ -28,7 +28,6 @@ from utils.git_utils import (
|
|||||||
get_remote_commit,
|
get_remote_commit,
|
||||||
git_pull_wrapper,
|
git_pull_wrapper,
|
||||||
)
|
)
|
||||||
from utils.input_utils import get_confirm
|
|
||||||
from utils.logger import Logger
|
from utils.logger import Logger
|
||||||
from utils.sys_utils import (
|
from utils.sys_utils import (
|
||||||
parse_packages_from_file,
|
parse_packages_from_file,
|
||||||
@@ -48,23 +47,37 @@ def install_crowsnest() -> None:
|
|||||||
instances: List[Klipper] = im.find_instances()
|
instances: List[Klipper] = im.find_instances()
|
||||||
|
|
||||||
if len(instances) > 1:
|
if len(instances) > 1:
|
||||||
Logger.print_status("Multi instance install detected ...")
|
configure_multi_instance(instances)
|
||||||
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 ...")
|
# Step 4: Launch crowsnest installer
|
||||||
|
print(f"{COLOR_CYAN}Installer will prompt you for sudo password!{RESET_FORMAT}")
|
||||||
if not get_confirm("Continue with configuration?", False, allow_go_back=True):
|
Logger.print_status("Launching crowsnest installer ...")
|
||||||
Logger.print_info("Installation aborted by user ... Exiting!")
|
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
|
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")
|
config = Path(CROWSNEST_DIR).joinpath("tools/.config")
|
||||||
try:
|
try:
|
||||||
run(
|
run(
|
||||||
@@ -83,20 +96,6 @@ def install_crowsnest() -> None:
|
|||||||
Logger.print_error("Generating .config failed, installation aborted")
|
Logger.print_error("Generating .config failed, installation aborted")
|
||||||
return
|
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:
|
def update_crowsnest() -> None:
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user