chatbot-mimic-notes / deploy_git.sh
Jesse Liu
init hf
6a725a4
#!/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"