2026-08-07 12:59:59 +02:00

29 lines
1000 B
Bash
Executable File

#!/usr/bin/env bash
#
# Run this repo's doc-tests end-to-end and regenerate their Markdown into
# ./outputs/. The runner is the shared `doctest` CLI
# (https://github.com/logos-co/logos-doctest), invoked via its flake.
#
# Override the runner with DOCTEST, e.g. to use a local checkout:
# DOCTEST="nix run path:../../logos-doctest --" ./run.sh
#
set -euo pipefail
cd "$(dirname "$0")"
read -r -a DOCTEST <<< "${DOCTEST:-nix run github:logos-co/logos-doctest --}"
if [ -e outputs ]; then chmod -R u+w outputs 2>/dev/null || true; fi
rm -rf outputs && mkdir -p outputs
for spec in *.test.yaml; do
name="$(basename "${spec%.test.yaml}")"
echo "==> Running ${spec}"
"${DOCTEST[@]}" run "${spec}" --verbose --output-dir ./outputs/
echo "==> Generating outputs/${name}.md"
"${DOCTEST[@]}" generate "${spec}" -o "outputs/${name}.md"
done
echo "==> Cleaning build artifacts from outputs/ (keeps .md and images/)"
"${DOCTEST[@]}" clean ./outputs --verbose 2>/dev/null || true
echo "==> Done."