#!/usr/bin/env bash # Usage: warm-urls.sh # Example: warm-urls.sh https://www.example.com/sitemap.xml # Check if sitemap url is provided if [ -z "$1" ]; then echo "Please provide sitemap URL" >&2 exit 1 fi # Get all URLs from sitemap urls=$(curl -s "$1" | grep -o "[^<]*" | sed 's#\(.*\)#\1#') failed_urls=() # Warm up URLs for url in $urls; do # Fetch the og:image URL from the meta tags og_image_url=$(curl -s "$url" | grep -o " /dev/null; then failed_urls+=("$url") fi # Warm up the og:image URL if [ -n "$og_image_url" ]; then echo "Warming up OG: $og_image_url" if ! curl -s -I "$og_image_url" > /dev/null; then failed_urls+=("$og_image_url") fi else echo "No og:image found for $url" fi done # Print failed URLs if [ ${#failed_urls[@]} -gt 0 ]; then echo "Failed to warm up the following URLs:" >&2 for failed_url in "${failed_urls[@]}"; do echo "$failed_url" >&2 done fi