add command arguments
This commit is contained in:
parent
bd2f877174
commit
bf7c49c8c2
|
@ -1,2 +1,4 @@
|
|||
|
||||
\.history/
|
||||
|
||||
\.history/
|
||||
|
||||
\.vscode/
|
||||
|
|
139
optimize.sh
139
optimize.sh
|
@ -3,6 +3,47 @@ CSI='\033['
|
|||
CEND="${CSI}0m"
|
||||
CGREEN="${CSI}1;32m"
|
||||
|
||||
##################################
|
||||
# Parse script arguments
|
||||
##################################
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
arg="$1"
|
||||
case $arg in
|
||||
--jpg)
|
||||
JPG_OPTIMIZATION="y"
|
||||
IMG_PATH=$2
|
||||
shift
|
||||
;;
|
||||
--png)
|
||||
PNG_OPTIMIZATION="y"
|
||||
IMG_PATH=$2
|
||||
shift
|
||||
;;
|
||||
--nowebp)
|
||||
JPG_OPTIMIZATION="y"
|
||||
PNG_OPTIMIZATION="y"
|
||||
WEBP_OPTIMIZATION="n"
|
||||
IMG_PATH=$2
|
||||
shift
|
||||
;;
|
||||
--webp)
|
||||
WEBP_OPTIMIZATION="y"
|
||||
IMG_PATH=$2
|
||||
shift
|
||||
;;
|
||||
--all)
|
||||
PNG_OPTIMIZATION="y"
|
||||
JPG_OPTIMIZATION="y"
|
||||
WEBP_OPTIMIZATION="y"
|
||||
IMG_PATH=$2
|
||||
shift
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
##################################
|
||||
# Welcome
|
||||
##################################
|
||||
|
@ -11,46 +52,62 @@ echo ""
|
|||
echo "Welcome to optimize.sh image optimization script."
|
||||
echo ""
|
||||
|
||||
echo ""
|
||||
echo "Do you want to optimize all jpg images in $1 ? (y/n)"
|
||||
while [[ $jpg != "y" && $jpg != "n" ]]; do
|
||||
read -p "Select an option [y/n]: " jpg
|
||||
done
|
||||
echo ""
|
||||
echo "Do you want to optimize all png images in $1 (it may take a while) ? (y/n)"
|
||||
while [[ $png != "y" && $png != "n" ]]; do
|
||||
read -p "Select an option [y/n]: " png
|
||||
done
|
||||
echo ""
|
||||
echo "Do you want to convert all jpg & png images to WebP in $1 ? (y/n)"
|
||||
while [[ $webp != "y" && $webp != "n" ]]; do
|
||||
read -p "Select an option [y/n]: " webp
|
||||
done
|
||||
echo ""
|
||||
echo ""
|
||||
if [ $# -lt 2 ]; then
|
||||
if [ -z "$JPG_OPTIMIZATION" ]; then
|
||||
echo ""
|
||||
echo "Do you want to optimize all jpg images in $1 ? (y/n)"
|
||||
while [[ $JPG_OPTIMIZATION != "y" && $JPG_OPTIMIZATION != "n" ]]; do
|
||||
read -p "Select an option [y/n]: " JPG_OPTIMIZATION
|
||||
done
|
||||
fi
|
||||
if [ -z "$PNG_OPTIMIZATION" ]; then
|
||||
echo ""
|
||||
echo "Do you want to optimize all png images in $1 (it may take a while) ? (y/n)"
|
||||
while [[ $PNG_OPTIMIZATION != "y" && $PNG_OPTIMIZATION != "n" ]]; do
|
||||
read -p "Select an option [y/n]: " PNG_OPTIMIZATION
|
||||
done
|
||||
fi
|
||||
if [ -z "$WEBP_OPTIMIZATION" ]; then
|
||||
echo ""
|
||||
echo "Do you want to convert all jpg & png images to WebP in $1 ? (y/n)"
|
||||
while [[ $WEBP_OPTIMIZATION != "y" && $WEBP_OPTIMIZATION != "n" ]]; do
|
||||
read -p "Select an option [y/n]: " WEBP_OPTIMIZATION
|
||||
done
|
||||
echo ""
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
|
||||
##################################
|
||||
# image optimization
|
||||
##################################
|
||||
|
||||
# optimize jpg
|
||||
jpg_optimize() {
|
||||
if [ $JPG_OPTIMIZATION = "y" ]; then
|
||||
echo -ne ' jpg optimization [..]\r'
|
||||
find "$1" -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 jpegoptim --preserve --quiet --strip-all -m82
|
||||
cd $IMG_PATH || exit 1
|
||||
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 jpegoptim --preserve --strip-all -m82
|
||||
|
||||
echo -ne " jpg optimization [${CGREEN}OK${CEND}]\\r"
|
||||
echo -ne '\n'
|
||||
}
|
||||
# optimize png
|
||||
png_optimize() {
|
||||
echo -ne ' png optimization [..]\r'
|
||||
find "$1" -type f -iname '*.png' -print0 | xargs -0 optipng -o7 -strip all -quiet
|
||||
fi
|
||||
if [ $PNG_OPTIMIZATION = "y" ]; then
|
||||
# optimize png
|
||||
|
||||
echo -ne ' png optimization [..]\r'
|
||||
cd $IMG_PATH || exit 1
|
||||
find . -type f -iname '*.png' -print0 | xargs -0 optipng -o7 -strip all
|
||||
echo -ne " png optimization [${CGREEN}OK${CEND}]\\r"
|
||||
echo -ne '\n'
|
||||
}
|
||||
# convert png to webp
|
||||
webp_convert_images() {
|
||||
fi
|
||||
if [ $WEBP_OPTIMIZATION = "y" ]; then
|
||||
# convert png to webp
|
||||
echo -ne ' png to webp conversion [..]\r'
|
||||
find "$1" -type f -iname "*.png" -print0 | xargs -0 -I {} \
|
||||
bash -c 'webp_version="$0".webp
|
||||
cd $IMG_PATH || exit 1
|
||||
find . -type f -iname "*.png" -print0 | xargs -0 -I {} \
|
||||
bash -c 'webp_version="$0".webp
|
||||
if [ ! -f "$webp_version" ]; then
|
||||
{ cwebp -quiet -z 9 -mt {} -o {}.webp; }
|
||||
{ cwebp -z 9 -mt {} -o {}.webp; }
|
||||
fi'
|
||||
|
||||
echo -ne " png to webp conversion [${CGREEN}OK${CEND}]\\r"
|
||||
|
@ -58,25 +115,17 @@ webp_convert_images() {
|
|||
|
||||
# convert jpg to webp
|
||||
echo -ne ' jpg to webp conversion [..]\r'
|
||||
find "$1" -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 -I {} \
|
||||
bash -c 'webp_version="$0".webp
|
||||
if [ ! -f "$webp_version" ]; then
|
||||
{ cwebp -quiet -q 82 -mt {} -o {}.webp; }
|
||||
fi'
|
||||
cd $IMG_PATH || exit 1
|
||||
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 -I {} \
|
||||
bash -c 'webp_version="$0".webp
|
||||
if [ ! -f "$webp_version" ]; then
|
||||
{ cwebp -q 82 -mt {} -o {}.webp; }
|
||||
fi'
|
||||
|
||||
echo -ne " jpg to webp conversion [${CGREEN}OK${CEND}]\\r"
|
||||
echo -ne '\n'
|
||||
}
|
||||
fi
|
||||
|
||||
if [ "$jpg" = "y" ]; then
|
||||
jpg_optimize "$@"
|
||||
fi
|
||||
if [ "$png" = "y" ]; then
|
||||
png_optimize "$@"
|
||||
fi
|
||||
if [ "$webp" = "y" ]; then
|
||||
webp_convert_images "$@"
|
||||
fi
|
||||
|
||||
# We're done !
|
||||
echo ""
|
||||
|
|
Loading…
Reference in New Issue