You've already forked Openterface_assets
mirror of
https://github.com/TechxArtisanStudio/Openterface_assets.git
synced 2025-06-10 16:33:42 -07:00
fix: unify directory creation for CSS and JS minification
This commit is contained in:
62
build.sh
62
build.sh
@@ -1,27 +1,59 @@
|
||||
#!/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."
|
||||
|
||||
# Convert images to WebP format while preserving folder structure
|
||||
find src/images -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" \) -exec sh -c '
|
||||
mkdir -p "dist/images/$(dirname "$1" | sed "s|^src/images/||")" &&
|
||||
cwebp "$1" -o "dist/images/$(dirname "$1" | sed "s|^src/images/||")/$(basename "${1%.*}.webp")"
|
||||
' _ {} \;
|
||||
# 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"
|
||||
|
||||
# Minify CSS files while preserving folder structure
|
||||
find src/css -type f -name "*.css" -exec sh -c '
|
||||
mkdir -p "dist/css/$(dirname "$1" | sed "s|^src/||")" &&
|
||||
csso "$1" -o "dist/css/$(dirname "$1" | sed "s|^src/||")/$(basename "${1%.css}.min.css")"
|
||||
' _ {} \;
|
||||
# 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/||")"
|
||||
mkdir -p "$target_dir"
|
||||
echo "Processing image: $file -> $target_dir/$(basename "${file%.*}.webp")"
|
||||
cwebp "$file" -o "$target_dir/$(basename "${file%.*}.webp")"
|
||||
done
|
||||
|
||||
# Minify JS files while preserving folder structure
|
||||
find src/js -type f -name "*.js" -exec sh -c '
|
||||
mkdir -p "dist/js/$(dirname "$1" | sed "s|^src/||")" &&
|
||||
uglifyjs "$1" -o "dist/js/$(dirname "$1" | sed "s|^src/||")/$(basename "${1%.js}.min.js")"
|
||||
' _ {} \;
|
||||
# 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
|
||||
target_dir="dist/css/$(dirname "$file" | sed "s|^src/||")"
|
||||
mkdir -p "$target_dir"
|
||||
echo "Processing CSS: $file -> $target_dir/$(basename "${file%.css}.min.css")"
|
||||
csso "$file" -o "$target_dir/$(basename "${file%.css}.min.css")"
|
||||
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
|
||||
target_dir="dist/js/$(dirname "$file" | sed "s|^src/||")"
|
||||
mkdir -p "$target_dir"
|
||||
echo "Processing JS: $file -> $target_dir/$(basename "${file%.js}.min.js")"
|
||||
uglifyjs "$file" -o "$target_dir/$(basename "${file%.js}.min.js")"
|
||||
done
|
||||
|
||||
echo "Build process completed."
|
Reference in New Issue
Block a user