#!/usr/bin/env bash # Download and vendor libraries into vendor/. # Run from the project root after updating the VERSION variables below. set -euo pipefail # ---- Library versions ---- HTMX_VERSION="2.0.4" HTMX_JSON_ENC_VERSION="2.0.0" ACME_VERSION="3.1.3" VENDOR="vendor" STATIC="webui/static" download() { local name="$1" url="$2" dest="$3" if [[ -n "${SKIP_DOWNLOAD:-}" ]]; then echo "[skip] $name (SKIP_DOWNLOAD is set)" return fi echo "[download] $name → $dest" curl -sfL -o "$dest" "$url" } download "htmx@${HTMX_VERSION}" \ "https://unpkg.com/htmx.org@${HTMX_VERSION}/dist/htmx.min.js" \ "${VENDOR}/htmx-${HTMX_VERSION}.min.js" download "htmx-ext-json-enc@${HTMX_JSON_ENC_VERSION}" \ "https://unpkg.com/htmx-ext-json-enc@${HTMX_JSON_ENC_VERSION}/json-enc.js" \ "${VENDOR}/json-enc-${HTMX_JSON_ENC_VERSION}.js" download "acme.sh@${ACME_VERSION}" \ "https://raw.githubusercontent.com/acmesh-official/acme.sh/${ACME_VERSION}/acme.sh" \ "${VENDOR}/acme.sh" chmod +x "${VENDOR}/acme.sh" # Symlinks in webui/static/ select the active version ln -sf "../../vendor/htmx-${HTMX_VERSION}.min.js" "${STATIC}/htmx.min.js" ln -sf "../../vendor/json-enc-${HTMX_JSON_ENC_VERSION}.js" "${STATIC}/json-enc.js" echo "[done] All libraries vendored."