Spaces:
Sleeping
Sleeping
File size: 1,122 Bytes
dc12c31 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import os
import subprocess
def clone_or_pull_repository(github_url):
repository_folder = "extensions"
repo_name = github_url.split("/")[-1].split(".")[0]
# Check if the repository folder exists
if not os.path.exists(repository_folder):
os.makedirs(repository_folder)
repo_path = os.path.join(repository_folder, repo_name)
# Check if the repository is already cloned
if os.path.exists(repo_path):
yield f"Updating {github_url}..."
# Perform a 'git pull' to update the repository
try:
pull_output = subprocess.check_output(["git", "-C", repo_path, "pull"], stderr=subprocess.STDOUT)
yield "Done."
return pull_output.decode()
except subprocess.CalledProcessError as e:
return str(e)
# Clone the repository
try:
yield f"Cloning {github_url}..."
clone_output = subprocess.check_output(["git", "clone", github_url, repo_path], stderr=subprocess.STDOUT)
yield "Done."
return clone_output.decode()
except subprocess.CalledProcessError as e:
return str(e)
|