| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- #!/bin/bash
- # Colors for output
- RED='\033[0;31m'
- GREEN='\033[0;32m'
- YELLOW='\033[0;33m'
- BLUE='\033[0;34m'
- NC='\033[0m' # No Color
- # Default branch suffix
- BRANCH_SUFFIX="release"
- # Check if a custom version parameter was provided
- if [ $# -eq 1 ]; then
- BRANCH_SUFFIX="$1"
- fi
- # Branch name to create
- NEW_BRANCH="gh-pages-${BRANCH_SUFFIX}"
- # Function to print colored messages
- print_success() {
- echo -e "${GREEN}✓ $1${NC}"
- }
- print_error() {
- echo -e "${RED}✗ $1${NC}"
- exit 1
- }
- print_info() {
- echo -e "${BLUE}ℹ $1${NC}"
- }
- print_warning() {
- echo -e "${YELLOW}⚠ $1${NC}"
- }
- # Function to execute command with error handling
- execute() {
- print_info "Running: $1"
- eval $1
- if [ $? -ne 0 ]; then
- print_error "Failed to execute: $1"
- else
- print_success "Successfully executed: $1"
- fi
- }
- # Check if /tmp/_site directory exists from a previous run
- if [ -d "/tmp/_site" ]; then
- print_warning "Found existing /tmp/_site directory. Removing it…"
- rm -rf /tmp/_site
- fi
- # Main process
- print_info "Starting documentation deployment process…"
- # Step 1: Build documentation
- print_info "Building documentation with npm run docs…"
- npm run docs
- if [ $? -ne 0 ]; then
- print_error "Documentation build failed!"
- fi
- print_success "Documentation built successfully"
- # Step 2: Move _site to /tmp/
- print_info "Moving _site to temporary location…"
- execute "mv _site /tmp/"
- # Step 3: Switch to gh-pages branch
- print_info "Checking out gh-pages branch…"
- git checkout gh-pages
- if [ $? -ne 0 ]; then
- print_error "Failed to checkout gh-pages branch. Make sure it exists."
- fi
- print_success "Switched to gh-pages branch"
- # Step 4: Create a new branch for the update
- print_info "Creating new branch ${NEW_BRANCH}…"
- execute "git checkout -b ${NEW_BRANCH}"
- # Step 5: Move root files
- print_info "Moving root files from temporary location…"
- ROOT_FILES=("404.html" "CNAME" "apple-touch-icon.png" "favicon.ico" "index.html" "robots.txt" "sitemap-0.xml" "sitemap-index.xml" "sw.js")
- for file in "${ROOT_FILES[@]}"; do
- if [ -f "/tmp/_site/$file" ]; then
- execute "mv /tmp/_site/$file ."
- else
- print_warning "File /tmp/_site/$file not found. Skipping."
- fi
- done
- # Step 6: Move directories with cleanup
- print_info "Moving directories from temporary location…"
- DIRS=("about" "components" "docsref" "examples" "getting-started" "migration")
- for dir in "${DIRS[@]}"; do
- if [ -d "/tmp/_site/$dir" ]; then
- if [ -d "$dir" ]; then
- execute "rm -rf $dir"
- fi
- execute "mv /tmp/_site/$dir ."
- else
- print_warning "Directory /tmp/_site/$dir not found. Skipping."
- fi
- done
- # Step 7: Handle special doc directories
- print_info "Handling special documentation directories…"
- SPECIAL_DOCS=("docs/getting-started" "docs/versions")
- for dir in "${SPECIAL_DOCS[@]}"; do
- if [ -d "/tmp/_site/$dir" ]; then
- if [ -d "$dir" ]; then
- execute "rm -rf $dir"
- fi
- # Make sure parent directory exists
- parent_dir=$(dirname "$dir")
- mkdir -p "$parent_dir"
- execute "mv /tmp/_site/$dir $parent_dir/"
- else
- print_warning "Directory /tmp/_site/$dir not found. Skipping."
- fi
- done
- # Step 8: Move docs index.html
- if [ -f "/tmp/_site/docs/index.html" ]; then
- execute "mv /tmp/_site/docs/index.html docs/index.html"
- else
- print_warning "File /tmp/_site/docs/index.html not found. Skipping."
- fi
- # Step 9: Handle docs/5.3
- if [ -d "/tmp/_site/docs/5.3" ]; then
- if [ -d "docs/5.3" ]; then
- execute "rm -rf docs/5.3"
- fi
- execute "mv /tmp/_site/docs/5.3 docs/"
- else
- print_warning "Directory /tmp/_site/docs/5.3 not found. Skipping."
- fi
- # Clean up remaining files in /tmp/_site if any
- if [ -d "/tmp/_site" ]; then
- remaining_files=$(find /tmp/_site -type f | wc -l)
- remaining_dirs=$(find /tmp/_site -type d | wc -l)
- if [ $remaining_files -gt 0 ] || [ $remaining_dirs -gt 1 ]; then
- print_warning "There are still some files or directories in /tmp/_site that weren't moved."
- print_warning "You may want to inspect /tmp/_site to see if anything important was missed."
- else
- print_info "Cleaning up temporary directory…"
- rm -rf /tmp/_site
- print_success "Temporary directory cleaned up"
- fi
- fi
- # Step 10: Remove empty site directory if it exists
- if [ -d "site" ]; then
- print_info "Removing empty site directory…"
- execute "rm -rf site"
- fi
- print_success "Docs prep complete!"
- print_info "Review changes before committing and pushing."
- print_info "Next steps:"
- print_info " 1. Run a local server to review changes"
- print_info " 2. Check browser and web inspector for any errors"
- print_info " 3. git add ."
- print_info " 4. git commit -m \"Update documentation\""
- print_info " 5. git push origin ${NEW_BRANCH}"
|