Spaces:
Running
on
Zero
Running
on
Zero
| import os, subprocess | |
| def clone_repo_if_not_exists(git_url, git_dir): | |
| """ | |
| Clones a Git repository if it doesn't already exist in the git_dir folder. | |
| """ | |
| home_dir = os.path.expanduser("~") | |
| models_dir = os.path.join(home_dir, git_dir) | |
| # Extract repository name from the Git URL | |
| if git_url.endswith(".git"): | |
| git_name = git_url.split('/')[-1][:-4] | |
| else: | |
| git_name = git_url.split('/')[-1] | |
| repo_path = os.path.join(models_dir, git_name) | |
| if not os.path.exists(models_dir): | |
| os.makedirs(models_dir) | |
| print(f"Created directory: {models_dir}") | |
| if not os.path.exists(repo_path): | |
| print(f"Repository '{git_name}' not found in '{models_dir}'. Cloning from {git_url}...") | |
| try: | |
| subprocess.run(["git", "clone", git_url, repo_path], check=True) | |
| print(f"Successfully cloned '{git_name}' to '{repo_path}'.") | |
| except subprocess.CalledProcessError as e: | |
| print(f"Error cloning repository: {e}") | |
| except FileNotFoundError: | |
| print("Error: 'git' command not found. Please ensure Git is installed and in your PATH.") | |
| else: | |
| print(f"Repository '{git_name}' already exists at '{repo_path}'. Skipping clone.") | |