GitSpec / backend /clone.py
Lumiin0us
GitSpec Initial Deployment
34b79cd
raw
history blame contribute delete
838 Bytes
import os
import shutil
import stat
import tempfile
from git import Repo
def readOnlyHandler(func, path, execinfo):
os.chmod(path, stat.S_IWRITE)
func(path)
def cloneRepo(repository):
basePath = tempfile.gettempdir()
folderName = repository.rstrip('/').split('/')[-1]
destinationPath = os.path.join(basePath, folderName)
if os.path.exists(destinationPath):
shutil.rmtree(destinationPath, onerror=readOnlyHandler)
try:
repo = Repo.clone_from(repository, destinationPath)
return destinationPath, repo
except Exception as e:
print("Error: ", e)
return None, None
def cleanupRepo(path):
try:
if os.path.exists(path):
shutil.rmtree(path, onerror=readOnlyHandler)
except Exception as e:
print(f"Cleanup warning: {e}")