From 4651ff5a50d1fb0e88adbbf2adaa734bca3b4c07 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 21 Apr 2020 13:30:53 +0200 Subject: [PATCH 1/4] Make the script better readable Signed-off-by: Joas Schilling --- build/image-optimization.sh | 44 +++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/build/image-optimization.sh b/build/image-optimization.sh index a1be5d22ce1..65a5bb46362 100755 --- a/build/image-optimization.sh +++ b/build/image-optimization.sh @@ -1,20 +1,36 @@ #!/usr/bin/env bash function recursive_optimize_images() { -cd $1; -optipng -o6 -strip all *.png; -jpegoptim --strip-all *.jpg; -for svg in `ls *.svg`; -do - 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; -done; -rm *.opttmp -for dir in `ls -d */`; -do - recursive_optimize_images $dir; - cd ..; -done; + cd "$1": + + # Optimize all JPGs and PNGs + optipng -o6 -strip all *.png; + jpegoptim --strip-all *.jpg; + + # Optimize all SVGs + for svg in `ls *.svg`; + do + 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; + done; + + # Remove temporary SVGs + rm *.opttmp + + # Check all subfolders + for dir in `ls -d */`; + do + recursive_optimize_images $dir; + cd ..; + done; } recursive_optimize_images ../ From f354a4f17f7b58591f7373cf649aaad84c28cc60 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 21 Apr 2020 13:32:11 +0200 Subject: [PATCH 2/4] FIx glob usage to avoid problems with directories that contain spaces Signed-off-by: Joas Schilling --- build/image-optimization.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/build/image-optimization.sh b/build/image-optimization.sh index 65a5bb46362..bf825c96cc6 100755 --- a/build/image-optimization.sh +++ b/build/image-optimization.sh @@ -8,7 +8,7 @@ function recursive_optimize_images() { jpegoptim --strip-all *.jpg; # Optimize all SVGs - for svg in `ls *.svg`; + for svg in *.svg; do mv $svg $svg.opttmp; scour --create-groups \ @@ -26,10 +26,12 @@ function recursive_optimize_images() { rm *.opttmp # Check all subfolders - for dir in `ls -d */`; + for dir in */ do - recursive_optimize_images $dir; - cd ..; + if [[ -d "$DIR" ]]; then + recursive_optimize_images "$dir" + cd .. + fi done; } From e49b6c576d524a2930c4b82e57e5c1e6da35bc6a Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 21 Apr 2020 13:33:11 +0200 Subject: [PATCH 3/4] Don't error when the directory is broken Signed-off-by: Joas Schilling --- build/image-optimization.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/build/image-optimization.sh b/build/image-optimization.sh index bf825c96cc6..148f0c9695a 100755 --- a/build/image-optimization.sh +++ b/build/image-optimization.sh @@ -1,14 +1,14 @@ #!/usr/bin/env bash function recursive_optimize_images() { - cd "$1": + cd "$1" || return # Optimize all JPGs and PNGs - optipng -o6 -strip all *.png; - jpegoptim --strip-all *.jpg; + optipng -o6 -strip all *.png + jpegoptim --strip-all *.jpg # Optimize all SVGs - for svg in *.svg; + for svg in *.svg do mv $svg $svg.opttmp; scour --create-groups \ @@ -19,8 +19,8 @@ function recursive_optimize_images() { --strip-xml-prolog \ --no-line-breaks \ -i $svg.opttmp \ - -o $svg; - done; + -o $svg + done # Remove temporary SVGs rm *.opttmp @@ -32,7 +32,7 @@ function recursive_optimize_images() { recursive_optimize_images "$dir" cd .. fi - done; + done } recursive_optimize_images ../ From e9f0a388d93a06cfa6653ad5cdadc02f7c5373c2 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 21 Apr 2020 13:50:26 +0200 Subject: [PATCH 4/4] Allow to specify a directory and skip node_modules and tests Signed-off-by: Joas Schilling --- build/image-optimization.sh | 44 +++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/build/image-optimization.sh b/build/image-optimization.sh index 148f0c9695a..81866a0fee4 100755 --- a/build/image-optimization.sh +++ b/build/image-optimization.sh @@ -1,16 +1,42 @@ #!/usr/bin/env bash +CHECK_DIR='../' +if ! [ "$SERVER_VERSION" ]; then + CHECK_DIR=$1 +fi + function recursive_optimize_images() { cd "$1" || return + DIR_NAME=${PWD##*/} - # Optimize all JPGs and PNGs - optipng -o6 -strip all *.png - jpegoptim --strip-all *.jpg + 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 - mv $svg $svg.opttmp; + [[ -e "$svg" ]] || break + + mv $svg $svg.opttmp scour --create-groups \ --enable-id-stripping \ --enable-comment-stripping \ @@ -20,19 +46,19 @@ function recursive_optimize_images() { --no-line-breaks \ -i $svg.opttmp \ -o $svg + rm $svg.opttmp done - # Remove temporary SVGs - rm *.opttmp - # Check all subfolders for dir in */ do - if [[ -d "$DIR" ]]; then + [[ -e "$dir" ]] || break + + if [[ -d "$dir" ]]; then recursive_optimize_images "$dir" cd .. fi done } -recursive_optimize_images ../ +recursive_optimize_images "$CHECK_DIR"