Files
Openterface_assets/build.sh
2025-04-20 13:12:07 +08:00

71 lines
2.2 KiB
Bash

#!/bin/bash
# Create necessary directories
echo "Creating necessary directories..."
mkdir -p dist/css
mkdir -p dist/js
mkdir -p dist/images
# Copy all images to dist/images while preserving folder structure
echo "Copying images to dist/images..."
rsync -a src/images/ dist/images/
echo "Images copied successfully."
# Generate a list of image files to convert to WebP
echo "Generating list of image files to convert to WebP..."
image_files=$(find src/images -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" \))
echo "Image files to process:"
echo "$image_files"
# Convert images to WebP format
echo "Converting images to WebP format..."
for file in $image_files; do
target_dir="dist/images/$(dirname "$file" | sed "s|^src//images//||")"
if [ "$target_dir" = "dist/images/" ]; then
target_dir="dist/images"
fi
mkdir -p "$target_dir"
echo "Processing image: $file -> $target_dir/$(basename "${file%.*}.webp")"
cwebp "$file" -o "$target_dir/$(basename "${file%.*}.webp")"
done
# Generate a list of CSS files to minify
echo "Generating list of CSS files to minify..."
css_files=$(find src/css -type f -name "*.css")
echo "CSS files to process:"
echo "$css_files"
# Minify CSS files
echo "Minifying CSS files..."
for file in $css_files; do
echo "Input CSS file: $file"
target_dir="dist/css/$(dirname "$file" | sed "s|^src//css//||")"
if [ "$target_dir" = "dist/css/" ]; then
target_dir="dist/css"
fi
mkdir -p "$target_dir"
output_file="$target_dir/$(basename "${file%.css}.min.css")"
echo "Target directory: $target_dir"
echo "Output CSS file: $output_file"
csso "$file" -o "$output_file"
done
# Generate a list of JS files to minify
echo "Generating list of JS files to minify..."
js_files=$(find src/js -type f -name "*.js")
echo "JS files to process:"
echo "$js_files"
# Minify JS files
echo "Minifying JS files..."
for file in $js_files; do
echo "Input JS file: $file"
target_dir="dist/js/$(dirname "$file" | sed "s|^src\/js||")"
mkdir -p "$target_dir"
output_file="$target_dir/$(basename "${file%.js}.min.js")"
echo "Target directory: $target_dir"
echo "Output JS file: $output_file"
uglifyjs "$file" -o "$output_file"
done
echo "Build process completed."