From 35d692f17f2f018dd57efaee0c63e17e6df8fa77 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Wed, 17 Jul 2019 17:25:50 +0200 Subject: [PATCH 1/3] Simplify quiet mode * Provide an unique optional argument * set quiet mode if required related to #6 and 2cd9570f8aa4d829f94cd7d66a8812b013ae3617 --- optimize.sh | 38 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/optimize.sh b/optimize.sh index 7e691fa..104f0c7 100755 --- a/optimize.sh +++ b/optimize.sh @@ -13,6 +13,9 @@ CSI='\033[' CEND="${CSI}0m" CGREEN="${CSI}1;32m" +PNG_ARGS="" +JPG_ARGS="" +WEBP_ARGS="" _help() { echo "Bash script to optimize your images and convert them in WebP " @@ -89,7 +92,9 @@ else INTERACTIVE_MODE="1" ;; -q | --quiet) - QUIET_MODE="1" + PNG_ARGS+=" -quiet" + JPG_ARGS+=" --quiet" + WEBP_ARGS+=" -quiet" ;; -h | --help | help) _help @@ -155,11 +160,7 @@ if [ "$JPG_OPTIMIZATION" = "y" ]; then } echo -ne ' jpg optimization [..]\r' cd "$IMG_PATH" || exit 1 - if [ "$QUIET_MODE" = "1" ]; then - find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -r -0 jpegoptim -q --preserve --strip-all -m82 - else - find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -r -0 jpegoptim --preserve --strip-all -m82 - fi + find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -r -0 jpegoptim ${JPG_ARGS} --preserve --strip-all -m82 echo -ne " jpg optimization [${CGREEN}OK${CEND}]\\r" echo -ne '\n' @@ -173,12 +174,7 @@ if [ "$PNG_OPTIMIZATION" = "y" ]; then echo -ne ' png optimization [..]\r' cd "$IMG_PATH" || exit 1 - if [ "$QUIET_MODE" = "1" ]; then - find . -type f -iname '*.png' -print0 | xargs -r -0 optipng -quiet -o5 -strip all - else - find . -type f -iname '*.png' -print0 | xargs -r -0 optipng -quiet -o5 -strip all - fi - + find . -type f -iname '*.png' -print0 | xargs -r -0 optipng ${PNG_ARGS} -o5 -strip all echo -ne " png optimization [${CGREEN}OK${CEND}]\\r" echo -ne '\n' fi @@ -190,13 +186,8 @@ if [ "$WEBP_OPTIMIZATION" = "y" ]; then # convert png to webp echo -ne ' png to webp conversion [..]\r' cd "$IMG_PATH" || exit 1 - if [ "$QUIET_MODE" = "1" ]; then - find . -type f -iname "*.png" -print0 | xargs -r -0 -I {} \ - bash -c '[ ! -f "{}.webp" ] && { cwebp -z 9 -mt -quiet "{}" -o "{}.webp"; }' - else - find . -type f -iname "*.png" -print0 | xargs -r -0 -I {} \ - bash -c '[ ! -f "{}.webp" ] && { cwebp -z 9 -short -mt "{}" -o "{}.webp"; }' - fi + find . -type f -iname "*.png" -print0 | xargs -r -0 -I {} \ + bash -c '[ ! -f "{}.webp" ] && { cwebp ${WEBP_ARGS} -z 9 -mt -quiet "{}" -o "{}.webp"; }' echo -ne " png to webp conversion [${CGREEN}OK${CEND}]\\r" echo -ne '\n' @@ -204,13 +195,8 @@ if [ "$WEBP_OPTIMIZATION" = "y" ]; then # convert jpg to webp echo -ne ' jpg to webp conversion [..]\r' cd "$IMG_PATH" || exit 1 - if [ "$QUIET_MODE" = "1" ]; then - find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 -I {} \ - bash -c '[ ! -f "{}.webp" ] && { cwebp -q 82 -quiet -mt "{}" -o "{}.webp"; }' - else - find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 -I {} \ - bash -c '[ ! -f "{}.webp" ] && { cwebp -q 82 -short -mt "{}" -o "{}.webp"; }' - fi + find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 -I {} \ + bash -c '[ ! -f "{}.webp" ] && { cwebp ${WEBP_ARGS} -q 82 -mt "{}" -o "{}.webp"; }' echo -ne " jpg to webp conversion [${CGREEN}OK${CEND}]\\r" echo -ne '\n' From f0542d557cf408aab3606ce4143600a6c4af9b73 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Wed, 17 Jul 2019 17:59:10 +0200 Subject: [PATCH 2/3] Add cmin support * Follow cmin find argument * cf #5 --- optimize.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/optimize.sh b/optimize.sh index 104f0c7..f9dad52 100755 --- a/optimize.sh +++ b/optimize.sh @@ -13,6 +13,7 @@ CSI='\033[' CEND="${CSI}0m" CGREEN="${CSI}1;32m" +FIND_ARGS="" PNG_ARGS="" JPG_ARGS="" WEBP_ARGS="" @@ -31,6 +32,7 @@ _help() { echo " -q, --quiet ..... run image optimization quietly" echo " Other options :" echo " -h, --help, help ... displays this help information" + echo " --cmin ... File's status was last changed n minutes ago." echo "Examples:" echo " optimize all jpg images in /var/www/images" echo " img-optimize --jpg /var/www/images" @@ -96,6 +98,12 @@ else JPG_ARGS+=" --quiet" WEBP_ARGS+=" -quiet" ;; + --cmin) + if [ "$2" ]; then + FIND_ARGS+="-cmin $2" + shift + fi + ;; -h | --help | help) _help exit 1 @@ -160,7 +168,7 @@ if [ "$JPG_OPTIMIZATION" = "y" ]; then } echo -ne ' jpg optimization [..]\r' cd "$IMG_PATH" || exit 1 - find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -r -0 jpegoptim ${JPG_ARGS} --preserve --strip-all -m82 + find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) ${FIND_ARGS} -print0 | xargs -r -0 jpegoptim ${JPG_ARGS} --preserve --strip-all -m82 echo -ne " jpg optimization [${CGREEN}OK${CEND}]\\r" echo -ne '\n' @@ -174,7 +182,7 @@ if [ "$PNG_OPTIMIZATION" = "y" ]; then echo -ne ' png optimization [..]\r' cd "$IMG_PATH" || exit 1 - find . -type f -iname '*.png' -print0 | xargs -r -0 optipng ${PNG_ARGS} -o5 -strip all + find . -type f -iname '*.png' ${FIND_ARGS} -print0 | xargs -r -0 optipng ${PNG_ARGS} -o5 -strip all echo -ne " png optimization [${CGREEN}OK${CEND}]\\r" echo -ne '\n' fi @@ -186,7 +194,7 @@ if [ "$WEBP_OPTIMIZATION" = "y" ]; then # convert png to webp echo -ne ' png to webp conversion [..]\r' cd "$IMG_PATH" || exit 1 - find . -type f -iname "*.png" -print0 | xargs -r -0 -I {} \ + find . -type f -iname "*.png" ${FIND_ARGS} -print0 | xargs -r -0 -I {} \ bash -c '[ ! -f "{}.webp" ] && { cwebp ${WEBP_ARGS} -z 9 -mt -quiet "{}" -o "{}.webp"; }' echo -ne " png to webp conversion [${CGREEN}OK${CEND}]\\r" @@ -195,7 +203,7 @@ if [ "$WEBP_OPTIMIZATION" = "y" ]; then # convert jpg to webp echo -ne ' jpg to webp conversion [..]\r' cd "$IMG_PATH" || exit 1 - find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 -I {} \ + find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) ${FIND_ARGS} -print0 | xargs -0 -I {} \ bash -c '[ ! -f "{}.webp" ] && { cwebp ${WEBP_ARGS} -q 82 -mt "{}" -o "{}.webp"; }' echo -ne " jpg to webp conversion [${CGREEN}OK${CEND}]\\r" From f437df5cf346a31add8d73ba45722fd5bae7d914 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Wed, 17 Jul 2019 17:59:24 +0200 Subject: [PATCH 3/3] Be more explicit about cmin numeric value * We can/must use +/- prefix --- optimize.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/optimize.sh b/optimize.sh index f9dad52..d261f23 100755 --- a/optimize.sh +++ b/optimize.sh @@ -32,7 +32,8 @@ _help() { echo " -q, --quiet ..... run image optimization quietly" echo " Other options :" echo " -h, --help, help ... displays this help information" - echo " --cmin ... File's status was last changed n minutes ago." + echo " --cmin [+|-] ... File's status was last changed n minutes ago." + echo " act find cmin argument (+n : greater than n, -n : less than n, n : exactly n)" echo "Examples:" echo " optimize all jpg images in /var/www/images" echo " img-optimize --jpg /var/www/images"