2026-04-03 20:30:38 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
2026-04-20 13:23:14 +00:00
|
|
|
# Build the Hugo site into the `public/` directory for deployment (e.g. nginx).
|
2026-04-03 20:30:38 +00:00
|
|
|
# Usage: ./scripts/build.sh
|
|
|
|
|
|
2026-04-03 21:17:19 +00:00
|
|
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../.env"
|
2026-04-03 20:30:38 +00:00
|
|
|
|
|
|
|
|
if [[ ! -d "${SITE_DIR}" ]]; then
|
|
|
|
|
echo "[build] Site directory not found: ${SITE_DIR}"
|
|
|
|
|
echo "[build] Run ./scripts/setup.sh first."
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2026-04-20 13:23:14 +00:00
|
|
|
echo "[build] Building site into ${SITE_DIR}/public ..."
|
2026-04-03 20:30:38 +00:00
|
|
|
|
2026-04-20 13:23:14 +00:00
|
|
|
# Run Hugo in Docker to produce static files. This does not start the dev server.
|
2026-04-03 20:30:38 +00:00
|
|
|
docker run --rm \
|
|
|
|
|
-v "${SITE_DIR}:/src" \
|
|
|
|
|
-w /src \
|
2026-04-20 13:23:14 +00:00
|
|
|
"${HUGO_IMAGE}" \
|
|
|
|
|
--minify --destination "public" --baseURL "/"
|
|
|
|
|
|
|
|
|
|
echo "[build] Build complete: ${SITE_DIR}/public"
|