47 lines
1.1 KiB
Bash
Executable File
47 lines
1.1 KiB
Bash
Executable File
#!/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
|
|
|