2B / check_git_status.py
37-AN
Initial commit for Hugging Face Space deployment
4fe6054
#!/usr/bin/env python
"""
Check Git status and configuration for Hugging Face Space deployment.
This script helps troubleshoot git issues when deploying to Hugging Face Spaces.
"""
import subprocess
import os
import sys
def run_cmd(cmd, description, show_output=True):
"""Run a command and return the result."""
print(f"\n{description}:")
try:
if show_output:
subprocess.run(cmd, check=True)
return True
else:
result = subprocess.run(cmd, check=True, capture_output=True, text=True)
return result.stdout.strip()
except subprocess.CalledProcessError as e:
print(f"Error: {e}")
if e.stderr:
print(f"Details: {e.stderr}")
return False
def check_git_installation():
"""Check if git is installed and properly configured."""
print("="*50)
print("Checking Git Installation and Configuration")
print("="*50)
# Check git version
if not run_cmd(["git", "--version"], "Git version"):
print("Git is not installed. Please install Git and try again.")
return False
# Check git configuration
user_name = run_cmd(["git", "config", "user.name"], "Git user name", False)
user_email = run_cmd(["git", "config", "user.email"], "Git user email", False)
if not user_name or not user_email:
print("\nGit user name or email is not configured. Please set them:")
print(" git config --global user.name \"Your Name\"")
print(" git config --global user.email \"your.email@example.com\"")
# Prompt to set them now
if input("\nDo you want to set them now? (y/n): ").lower() == 'y':
name = input("Enter your name: ")
email = input("Enter your email: ")
run_cmd(["git", "config", "--global", "user.name", name], "Setting Git user name", False)
run_cmd(["git", "config", "--global", "user.email", email], "Setting Git user email", False)
print("Git configuration updated.")
else:
return False
else:
print(f"\nGit user name: {user_name}")
print(f"Git user email: {user_email}")
return True
def check_git_repository():
"""Check the Git repository status."""
print("\n" + "="*50)
print("Checking Git Repository Status")
print("="*50)
# Check if this is a git repository
is_git_repo = os.path.exists(".git")
print(f"\nIs Git repository: {'Yes' if is_git_repo else 'No'}")
if not is_git_repo:
print("This is not a git repository. You can initialize it with 'git init'")
# Prompt to initialize git
if input("\nDo you want to initialize git now? (y/n): ").lower() == 'y':
run_cmd(["git", "init"], "Initializing Git repository")
print("Git repository initialized.")
else:
return False
# Check git status
run_cmd(["git", "status"], "Git status")
# Check remote repositories
run_cmd(["git", "remote", "-v"], "Git remotes")
return True
def check_huggingface_configuration():
"""Check Hugging Face-specific configurations."""
print("\n" + "="*50)
print("Checking Hugging Face Configuration")
print("="*50)
# Check if huggingface_hub is installed
try:
import huggingface_hub
print(f"\nhuggingface_hub version: {huggingface_hub.__version__}")
except ImportError:
print("\nhuggingface_hub is not installed. Installing...")
subprocess.run([sys.executable, "-m", "pip", "install", "huggingface_hub"], check=True)
print("huggingface_hub installed.")
# Check environment variables
hf_username = os.environ.get("HF_USERNAME")
hf_token = os.environ.get("HF_TOKEN")
print(f"\nHF_USERNAME is {'set' if hf_username else 'not set'}")
print(f"HF_TOKEN is {'set' if hf_token else 'not set'}")
if not hf_username or not hf_token:
print("\nPlease set HF_USERNAME and HF_TOKEN environment variables.")
print("You can run the deploy_to_hf.py script to do this.")
return True
def main():
"""Main function to check git status."""
# Check git installation
if not check_git_installation():
print("\nGit installation or configuration issue. Please fix and try again.")
return
# Check git repository
if not check_git_repository():
print("\nGit repository issue. Please fix and try again.")
return
# Check Hugging Face configuration
if not check_huggingface_configuration():
print("\nHugging Face configuration issue. Please fix and try again.")
return
print("\n" + "="*50)
print("Git status check completed successfully!")
print("="*50)
print("\nYou are ready to deploy to Hugging Face Spaces.")
print("Run 'python deploy_to_hf.py' to begin deployment.")
if __name__ == "__main__":
main()