diff options
Diffstat (limited to 'build/image-optimization.sh')
-rwxr-xr-x | build/image-optimization.sh | 47 |
1 files changed, 42 insertions, 5 deletions
diff --git a/build/image-optimization.sh b/build/image-optimization.sh index e559d8552f6..ddb213ea5bb 100755 --- a/build/image-optimization.sh +++ b/build/image-optimization.sh @@ -1,20 +1,30 @@ #!/usr/bin/env bash - +# +# SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: AGPL-3.0-or-later +# set -e OPTIPNG=$(which optipng) if ! [ -x "$OPTIPNG" ]; then - echo "optipng executable not found, please install" >&2 + echo -e "\033[0;31moptipng executable not found, please install\033[0m" >&2 exit 1 fi JPEGOPTIM=$(which jpegoptim) if ! [ -x "$JPEGOPTIM" ]; then - echo "jpegoptim executable not found, please install" >&2 + echo -e "\033[0;31mjpegoptim executable not found, please install\033[0m" >&2 exit 2 fi SCOUR=$(which scour) if ! [ -x "$SCOUR" ]; then - echo "scour executable not found, please install" >&2 + echo -e "\033[0;31mscour executable not found, please install\033[0m" >&2 + exit 3 +fi + +REQUIRED_SCOUR_VERSION="0.38.2" +SCOUR_VERSION=$(scour --version) +if dpkg --compare-versions $SCOUR_VERSION lt $REQUIRED_SCOUR_VERSION; then + echo "scour version $REQUIRED_SCOUR_VERSION or higher is required, found $SCOUR_VERSION" >&2 exit 3 fi @@ -29,9 +39,26 @@ function recursive_optimize_images() { cd "$1" || return DIR_NAME=${PWD##*/} - if [[ "$DIR_NAME" == "node_modules" ]]; then + if [[ "$DIR_NAME" == "3rdparty" ]]; then + echo -e "\033[0;36mIgnoring 3rdparty for image optimization\033[0m" + return + elif [[ "$DIR_NAME" == "build" ]]; then + echo -e "\033[0;36mIgnoring build for image optimization\033[0m" + return + elif [[ "$DIR_NAME" == "cypress" ]]; then + echo -e "\033[0;36mIgnoring cypress for image optimization\033[0m" + return + elif [[ "$DIR_NAME" == "node_modules" ]]; then + echo -e "\033[0;36mIgnoring node_modules for image optimization\033[0m" return elif [[ "$DIR_NAME" == "tests" ]]; then + echo -e "\033[0;36mIgnoring tests for image optimization\033[0m" + return + elif [[ "$DIR_NAME" == "vendor" ]]; then + echo -e "\033[0;36mIgnoring vendor for image optimization\033[0m" + return + elif [[ "$DIR_NAME" == "vendor-bin" ]]; then + echo -e "\033[0;36mIgnoring vendor-bin for image optimization\033[0m" return fi @@ -56,6 +83,11 @@ function recursive_optimize_images() { do [[ -e "$svg" ]] || break + if [[ "$svg" == "default-source.svg" ]]; then + echo -e "\033[0;36mIgnoring $svg image optimization\033[0m" + continue + fi + mv $svg $svg.opttmp $SCOUR --create-groups \ --enable-id-stripping \ @@ -75,6 +107,11 @@ function recursive_optimize_images() { [[ -e "$dir" ]] || break if [[ -d "$dir" ]]; then + if git check-ignore $dir -q ; then + echo -e "\033[0;36m$dir is not shipped. Ignoring image optimization\033[0m" + continue + fi + recursive_optimize_images "$dir" cd .. fi |