Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
169 changes: 169 additions & 0 deletions build/docs-prep.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
#!/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}"