#!/bin/bash public_dir="./public" css_extension=".css" timestamp=$(date +%s) # Define an array of folders to skip skip_folders=("img" "svg" "fonts") # Function to check if a path is within a skipped folder is_skipped_folder() { local path=$1 for skip in "${skip_folders[@]}"; do if [[ "$path" == */$skip/* ]]; then return 0 fi done return 1 } # Function to add timestamp to CSS files and update HTML imports update_css_references() { find "$public_dir" -type f -name "*$css_extension" | while read -r css_file; do if is_skipped_folder "$css_file"; then continue fi base_dir=$(dirname "$css_file") base_name=$(basename "$css_file" "$css_extension") new_name="${base_name}-${timestamp}${css_extension}" new_path="${base_dir}/${new_name}" # Rename the CSS file mv "$css_file" "$new_path" echo "Renamed: $css_file -> $new_path" # Update all HTML files under public recursively find "$public_dir" -type f -name "*.html" | while read -r html_file; do sed -i "s|$base_name$css_extension|$new_name|g" "$html_file" echo "Updated references in: $html_file" done done } update_css_references