blob: fbe9e032fe8d506d01ea4d0e4f13bbb35ec829ba [file] [edit]
#!/bin/sh
# Copyright (c) Google LLC 2019
#
# Use of this source code is governed by an MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT.
function updateBr() {
local ORIG="$1"
local BR="${ORIG}.br"
local TMP="$(mktemp)"
local FAIL=1
brotli -dfk "${BR}" -o "${TMP}" >/dev/null 2>/dev/null
cmp -s "${ORIG}" "${TMP}" && FAIL=0
rm -f "${TMP}" >/dev/null 2>/dev/null
[[ ${FAIL} = 0 ]] && return
ORIG_SIZE=`stat -f %z ${ORIG}`
echo "Creating ${BR}"
brotli -Zfk "${ORIG}"
BR_SIZE=`stat -f %z "${BR}"`
[[ $BR_SIZE -ge $ORIG_SIZE ]] && rm "${BR}"
}
function updateGz() {
local ORIG="$1"
local GZ="${ORIG}.gz"
local TMP="$(mktemp)"
local FAIL=1
gzip -cdf "${GZ}" > "${TMP}" 2>/dev/null
cmp -s "${ORIG}" "${TMP}" && FAIL=0
rm -f "${TMP}" >/dev/null 2>/dev/null
[[ ${FAIL} = 0 ]] && return
ORIG_SIZE=`stat -f %z ${ORIG}`
echo "Creating ${GZ}"
zopfli --i500 "${ORIG}"
GZ_SIZE=`stat -f %z "${GZ}"`
[[ $GZ_SIZE -ge $ORIG_SIZE ]] && rm "${GZ}"
}
function updateFile() {
FILE=$1
case "${FILE##*.}" in
"br") exit 0;;
"gz") exit 0;;
"png") exit 0;;
"jpg") exit 0;;
"j") exit 0;;
esac
updateBr "${FILE}"
updateGz "${FILE}"
}
export -f updateBr
export -f updateGz
export -f updateFile
all_files=`ls docs/*`
echo $all_files | xargs -n 1 -P `nproc` bash -c 'updateFile "$@"' _