#!/bin/bash
# Build minified frontend assets (public/js/*.min.js, public/css/*.min.css).
#
# Dev-only: this directory is stripped from release tags by deploy.sh, but the
# generated .min files are committed and shipped. Run after editing any file
# under public/js or public/css, then `svn add` any new .min file.
#
# Requires the esbuild binary (https://esbuild.github.io/), located via
# $ESBUILD or /home/tts/bin/esbuild.
set -e
cd "$(dirname "$0")/.."
ESBUILD="${ESBUILD:-/home/tts/bin/esbuild}"
if [ ! -x "$ESBUILD" ]; then
    echo "esbuild not found at $ESBUILD (set ESBUILD=/path/to/esbuild)" >&2
    exit 1
fi
for f in public/js/*.js public/css/*.css; do
    case "$f" in *.min.js|*.min.css) continue ;; esac
    out="${f%.*}.min.${f##*.}"
    "$ESBUILD" "$f" --minify --target=es2017 --log-level=warning --outfile="$out"
    printf '%-42s %7d -> %6d bytes\n' "$f" "$(stat -c%s "$f")" "$(stat -c%s "$out")"
done
