matrix.grapheneos.org/process-static
2022-05-08 05:45:52 -04:00

40 lines
778 B
Bash
Executable File

#!/bin/bash
set -o errexit -o nounset -o pipefail
shopt -s dotglob extglob globstar
if [[ $# -eq 1 ]]; then
fd=$1
else
touch lock
exec {fd}< lock
fi
if ! flock -n $fd; then
echo already processing/deploying static files >&2
exit 1
fi
export PATH="$PWD/node_modules/.bin:$PATH"
rm -rf nginx-tmp
cp -a nginx nginx-tmp
rm -rf static-tmp
cp -a /usr/share/webapps/element static-tmp
cp --remove-destination webapps/element/config.json static-tmp/config.json
brotli_k() {
brotli -k "$@"
}
export -f brotli_k
zopfli_preserve_time() {
zopfli "$1"
touch -r "$1" "$1.gz"
}
export -f zopfli_preserve_time
find static-tmp -regex '.+\.\(css\|html\|ico\|js\|json\|map\|svg\|txt\|wasm\|xml\)' |
parallel -q ::: brotli_k zopfli_preserve_time :::: -