mirror of
https://github.com/karma-riuk/crab.git
synced 2025-07-04 21:28:12 +02:00
unified the interface of funcitons in utils (made
clone return a bool that indicates success of cloning)
This commit is contained in:
11
utils.py
11
utils.py
@ -87,7 +87,7 @@ def is_already_repo_cloned(repos_dir: str, repo_name: str) -> bool:
|
|||||||
repo_name (str): The name of the repository.
|
repo_name (str): The name of the repository.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
bool: True if the repository is correctly cloned, False otherwise.
|
bool: True if the repository is already cloned, False otherwise.
|
||||||
"""
|
"""
|
||||||
path = os.path.join(repos_dir, repo_name)
|
path = os.path.join(repos_dir, repo_name)
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ def is_already_repo_cloned(repos_dir: str, repo_name: str) -> bool:
|
|||||||
except subprocess.CalledProcessError:
|
except subprocess.CalledProcessError:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def clone(repo: str, dest: str, updates: dict = {}, force: bool = False, verbose: bool = False) -> None:
|
def clone(repo: str, dest: str, updates: dict = {}, force: bool = False, verbose: bool = False) -> bool:
|
||||||
"""
|
"""
|
||||||
Clones a GitHub repository into a local directory.
|
Clones a GitHub repository into a local directory.
|
||||||
|
|
||||||
@ -120,12 +120,15 @@ def clone(repo: str, dest: str, updates: dict = {}, force: bool = False, verbose
|
|||||||
updates (dict, optional): A dictionary to store updates about the cloning process.
|
updates (dict, optional): A dictionary to store updates about the cloning process.
|
||||||
force (bool): Whether to force the cloning process, even if the repository already exists.
|
force (bool): Whether to force the cloning process, even if the repository already exists.
|
||||||
verbose (bool): Whether to print verbose output.
|
verbose (bool): Whether to print verbose output.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
bool: True if the repository is successfully cloned, False otherwise.
|
||||||
"""
|
"""
|
||||||
local_repo_path = os.path.join(dest, repo)
|
local_repo_path = os.path.join(dest, repo)
|
||||||
if not force and is_already_repo_cloned(dest, repo):
|
if not force and is_already_repo_cloned(dest, repo):
|
||||||
# if verbose: print(f"Skipping {repo}, already exists")
|
# if verbose: print(f"Skipping {repo}, already exists")
|
||||||
updates["cloned_successfully"] = "Already exists"
|
updates["cloned_successfully"] = "Already exists"
|
||||||
return
|
return True
|
||||||
|
|
||||||
if verbose: print(f"Cloning {repo}")
|
if verbose: print(f"Cloning {repo}")
|
||||||
proc = subprocess.run(
|
proc = subprocess.run(
|
||||||
@ -140,5 +143,7 @@ def clone(repo: str, dest: str, updates: dict = {}, force: bool = False, verbose
|
|||||||
error_msg = proc.stderr.decode()
|
error_msg = proc.stderr.decode()
|
||||||
print(error_msg, file=sys.stderr)
|
print(error_msg, file=sys.stderr)
|
||||||
updates["error_msg"] = error_msg
|
updates["error_msg"] = error_msg
|
||||||
|
return False
|
||||||
else:
|
else:
|
||||||
updates["cloned_successfully"] = True
|
updates["cloned_successfully"] = True
|
||||||
|
return True
|
||||||
|
Reference in New Issue
Block a user