65 lines
1005 B
Bash
Executable File
65 lines
1005 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
CHECK_DIR='../'
|
|
if [[ -d "$1" ]]; then
|
|
CHECK_DIR=$1
|
|
fi
|
|
|
|
function recursive_optimize_images() {
|
|
cd "$1" || return
|
|
DIR_NAME=${PWD##*/}
|
|
|
|
if [[ "$DIR_NAME" == "node_modules" ]]; then
|
|
return
|
|
elif [[ "$DIR_NAME" == "tests" ]]; then
|
|
return
|
|
fi
|
|
|
|
# Optimize all PNGs
|
|
for png in *.png
|
|
do
|
|
[[ -e "$png" ]] || break
|
|
|
|
optipng -o6 -strip all "$png"
|
|
done
|
|
|
|
# Optimize all JPGs
|
|
for jpg in *.jpg
|
|
do
|
|
[[ -e "$jpg" ]] || break
|
|
|
|
jpegoptim --strip-all "$jpg"
|
|
done
|
|
|
|
# Optimize all SVGs
|
|
for svg in *.svg
|
|
do
|
|
[[ -e "$svg" ]] || break
|
|
|
|
mv $svg $svg.opttmp
|
|
scour --create-groups \
|
|
--enable-id-stripping \
|
|
--enable-comment-stripping \
|
|
--shorten-ids \
|
|
--remove-metadata \
|
|
--strip-xml-prolog \
|
|
--no-line-breaks \
|
|
-i $svg.opttmp \
|
|
-o $svg
|
|
rm $svg.opttmp
|
|
done
|
|
|
|
# Check all subfolders
|
|
for dir in */
|
|
do
|
|
[[ -e "$dir" ]] || break
|
|
|
|
if [[ -d "$dir" ]]; then
|
|
recursive_optimize_images "$dir"
|
|
cd ..
|
|
fi
|
|
done
|
|
}
|
|
|
|
recursive_optimize_images "$CHECK_DIR"
|