#!/usr/bin/env bash set -euo pipefail SRC_DIR="${TYPST_SOURCE_DIR}" OUT_DIR="${BUILD_DIR}" if [[ ! -d "$SRC_DIR" ]]; then echo "Source directory '$SRC_DIR' does not exist." exit 1 fi mkdir -p "$OUT_DIR" # Find all .typ files under $SRC_DIR (excluding hidden dirs) mapfile -d '' files < <(printf '%s\0' "$SRC_DIR"/*.typ 2>/dev/null) if [[ ${#files[@]} -eq 0 ]]; then echo "No .typ files found in '$SRC_DIR'." exit 0 fi for f in "${files[@]}"; do # Trim leading ./ if present rel="${f#./}" # Destination path: build//.pdf dest_pdf="${OUT_DIR}/$(basename "${rel%.typ}").pdf" echo "Compiling: $f -> $dest_pdf" docker run --rm -v "$PWD":/workspace ghcr.io/typst/typst:latest compile "/workspace/$f" "/workspace/$dest_pdf" done