refactor: add force flag to git_clone_wrapper

Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
dw-0
2024-06-28 22:54:45 +02:00
parent 07a5ddc850
commit f6524b84f1
3 changed files with 9 additions and 4 deletions

View File

@@ -54,6 +54,7 @@ def install_octoeverywhere() -> None:
if not moonraker_exists():
return
force_clone = False
oe_im = InstanceManager(Octoeverywhere)
oe_instances: List[Octoeverywhere] = oe_im.instances
if oe_instances:
@@ -72,6 +73,7 @@ def install_octoeverywhere() -> None:
return
else:
Logger.print_status("Re-Installing OctoEverywhere for Klipper ...")
force_clone = True
mr_im = InstanceManager(Moonraker)
mr_instances: List[Moonraker] = mr_im.instances
@@ -99,7 +101,7 @@ def install_octoeverywhere() -> None:
return
try:
git_clone_wrapper(OE_REPO, OE_DIR)
git_clone_wrapper(OE_REPO, OE_DIR, force=force_clone)
for moonraker in mr_instances:
oe_im.current_instance = Octoeverywhere(suffix=moonraker.suffix)

View File

@@ -57,6 +57,7 @@ class ObicoExtension(BaseExtension):
# if obico is already installed, ask if the user wants to repair an
# incomplete installation or link to the obico server
force_clone = False
obico_im = InstanceManager(MoonrakerObico)
obico_instances: List[MoonrakerObico] = obico_im.instances
if obico_instances:
@@ -74,6 +75,7 @@ class ObicoExtension(BaseExtension):
return
else:
Logger.print_status("Re-Installing Obico for Klipper ...")
force_clone = True
# let the user confirm installation
kl_im = InstanceManager(Klipper)
@@ -89,7 +91,7 @@ class ObicoExtension(BaseExtension):
return
try:
git_clone_wrapper(OBICO_REPO, OBICO_DIR)
git_clone_wrapper(OBICO_REPO, OBICO_DIR, force=force_clone)
self._install_dependencies()
# ask the user for the obico server url

View File

@@ -14,7 +14,7 @@ from utils.logger import Logger
def git_clone_wrapper(
repo: str, target_dir: Path, branch: Optional[str] = None
repo: str, target_dir: Path, branch: Optional[str] = None, force: bool = False
) -> None:
"""
Clones a repository from the given URL and checks out the specified branch if given.
@@ -22,6 +22,7 @@ def git_clone_wrapper(
:param repo: The URL of the repository to clone.
:param branch: The branch to check out. If None, the default branch will be checked out.
:param target_dir: The directory where the repository will be cloned.
:param force: Force the cloning of the repository even if it already exists.
:return: None
"""
log = f"Cloning repository from '{repo}'"
@@ -29,7 +30,7 @@ def git_clone_wrapper(
try:
if Path(target_dir).exists():
question = f"'{target_dir}' already exists. Overwrite?"
if not get_confirm(question, default_choice=False):
if not force and not get_confirm(question, default_choice=False):
Logger.print_info("Skip cloning of repository ...")
return
shutil.rmtree(target_dir)