#!/bin/bash # Git-based deployment to Hugging Face Spaces echo "🚀 Chatbot Mimic Notes - Git deployment to Hugging Face" echo "=======================================================" echo "" # Check login status if ! huggingface-cli whoami &> /dev/null; then echo "❌ Not logged into Hugging Face" echo "Run: huggingface-cli login" exit 1 fi USERNAME=$(huggingface-cli whoami | head -n 1) echo "✅ Logged in as: $USERNAME" echo "" # Prompt for Space name read -p "Enter Space name (e.g., chatbot-mimic-notes): " SPACE_NAME if [ -z "$SPACE_NAME" ]; then echo "❌ Space name cannot be empty" exit 1 fi FULL_SPACE_NAME="${USERNAME}/${SPACE_NAME}" SPACE_URL="https://huggingface.co/spaces/${FULL_SPACE_NAME}" echo "" echo "📦 Preparing deployment to: $FULL_SPACE_NAME" echo "" # Check if Space exists if huggingface-cli repo exists "$FULL_SPACE_NAME" &> /dev/null; then echo "✅ Space already exists: $SPACE_URL" echo " Updating existing Space" else echo "🆕 Creating a new Space..." huggingface-cli repo create "$SPACE_NAME" --type space --sdk gradio if [ $? -ne 0 ]; then echo "❌ Failed to create Space" exit 1 fi echo "✅ Space created successfully" fi echo "" echo "📤 Preparing Git push..." echo "" # Create temp directory TEMP_DIR=$(mktemp -d) echo "Temp directory: $TEMP_DIR" # Clone Space repo echo "Cloning Space..." git clone "$SPACE_URL.git" "$TEMP_DIR/space" 2>/dev/null || { echo "Clone failed, initializing empty repo..." mkdir -p "$TEMP_DIR/space" cd "$TEMP_DIR/space" git init git remote add origin "$SPACE_URL.git" } cd "$TEMP_DIR/space" # Copy project files echo "Copying files..." cp -r /Users/liuzijie/Desktop/chatbot-mimic-notes/chatgpt.py . cp -r /Users/liuzijie/Desktop/chatbot-mimic-notes/README.md . cp -r /Users/liuzijie/Desktop/chatbot-mimic-notes/requirements.txt . cp -r /Users/liuzijie/Desktop/chatbot-mimic-notes/src ./src 2>/dev/null || true cp -r /Users/liuzijie/Desktop/chatbot-mimic-notes/google_drive_sync.py . 2>/dev/null || true # Remove sensitive files rm -f service-account-key.json rm -rf user_tokens/ # Commit & push echo "Committing changes..." git add . git commit -m "Deploy chatbot application" || echo "No changes to commit" git push origin main || git push origin master echo "" echo "✅ Deployment finished!" echo "🌐 Space URL: $SPACE_URL" echo "" echo "💡 Notes:" echo " - First build takes 2–5 minutes" echo " - Configure Google Drive secrets via Space Settings > Repository secrets" echo " - Add secret: GOOGLE_SERVICE_ACCOUNT_JSON" # Cleanup rm -rf "$TEMP_DIR"