BoxDreamer / app.py
LittleFrog's picture
Upload 2 files
822dc53 verified
raw
history blame
2.37 kB
import os
import subprocess
from huggingface_hub import login
def clone_and_initialize_repo(repo_url, target_dir):
"""
Clone a GitHub repository using a personal access token and initialize submodules.
"""
github_token = os.getenv("GITHUB_TOKEN")
if not github_token:
raise ValueError("Error: GITHUB_TOKEN is not set in environment variables.")
# Construct the authenticated repository URL
authenticated_repo_url = repo_url.replace(
"https://", f"https://{github_token}@"
)
try:
# Clone the repository
print(f"Cloning repository from {repo_url} into {target_dir}...")
subprocess.run(
["git", "clone", "--recurse-submodules", authenticated_repo_url, target_dir],
check=True
)
# Navigate to the repository directory
os.chdir(target_dir)
# Initialize and update submodules
print("Initializing and updating submodules...")
subprocess.run(["git", "submodule", "update", "--init", "--recursive"], check=True)
print("Repository cloned and submodules initialized successfully.")
except subprocess.CalledProcessError as e:
print(f"Error during repository cloning or submodule initialization: {e}")
raise
def huggingface_login():
"""
Log in to Hugging Face using the API token from environment variables.
"""
hf_token = os.getenv("HF_TOKEN")
if not hf_token:
raise ValueError("Error: HF_TOKEN is not set in environment variables.")
try:
print("Logging in to Hugging Face...")
login(token=hf_token, add_to_git_credential=False)
print("Hugging Face login successful.")
except Exception as e:
print(f"Error during Hugging Face login: {e}")
raise
def main():
"""
Main function to perform all operations.
"""
# Define the repository URL and target directory
repo_url = "https://github.com/dadwadw233/BoxDreamer.git"
target_dir = "./BoxDreamer"
try:
# Clone the repository and initialize submodules
clone_and_initialize_repo(repo_url, target_dir)
# Log in to Hugging Face
huggingface_login()
print("All operations completed successfully.")
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
main()