cookutils diff modules/compressor @ rev 1102

modules/compressor: compress CSS
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Nov 30 16:23:45 2018 +0200 (2018-11-30)
parents 33dbe879cc21
children 68d7bbd2b138
line diff
     1.1 --- a/modules/compressor	Fri Nov 30 01:19:41 2018 +0200
     1.2 +++ b/modules/compressor	Fri Nov 30 16:23:45 2018 +0200
     1.3 @@ -114,6 +114,7 @@
     1.4  		mo2) find $fs/usr/share/locale            -type f -name '*.mo'                          -exec ls -l \{\} \; ;;
     1.5  		gz)  find $install                        -type f -name '*.gz' ! -path '*/share/man/*'  -exec ls -l \{\} \; ;;
     1.6  		zip) find $install                        -type f -name '*.zip'                         -exec ls -l \{\} \; ;;
     1.7 +		css) find $install                        -type f -name '*.css'                         -exec ls -l \{\} \; ;;
     1.8  		strip)
     1.9  			{
    1.10  				find_elf EXEC
    1.11 @@ -460,6 +461,32 @@
    1.12  }
    1.13  
    1.14  
    1.15 +# Function used after compile_rules() to shrink all *.css files:
    1.16 +# remove insignificant spaces and comments
    1.17 +# Compressing can be disabled with COOKOPTS="!cssz"
    1.18 +
    1.19 +compress_css() {
    1.20 +	[ "${COOKOPTS/!cssz/}" != "$COOKOPTS" ] && return
    1.21 +	size0=$(sizes css); [ -z "$size0" ] && return
    1.22 +
    1.23 +	tpi rcssmin
    1.24 +
    1.25 +	action 'Compressing CSS files...'
    1.26 +
    1.27 +	time0=$(get_time)
    1.28 +	temp_css="$(mktemp)"
    1.29 +	IFS=$'\n'
    1.30 +	for css in $(find $install -type f -name '*.css'); do
    1.31 +		python -mrcssmin < "$css" > "$temp_css"
    1.32 +		cat "$temp_css" > "$css"
    1.33 +	done
    1.34 +	unset IFS
    1.35 +
    1.36 +	comp_summary "$time0" "$size0" "$(sizes css)" '/dev/null'
    1.37 +	rm "$temp_css"
    1.38 +}
    1.39 +
    1.40 +
    1.41  # Get list of supported locales...
    1.42  
    1.43  get_supported_locales() {
    1.44 @@ -840,6 +867,7 @@
    1.45  				compress_svg
    1.46  				compress_gif
    1.47  				compress_ui
    1.48 +				compress_css
    1.49  				;;
    1.50  		esac
    1.51