Spaces:
Sleeping
Sleeping
| # 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" | |