Files
docker/scripts/docs/render-compose-config.sh
T
2026-05-13 08:33:26 +10:00

41 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
cd "$ROOT"
mkdir -p docs/generated
mapfile -t COMPOSE_FILES < <(scripts/docs/list-compose-files.sh)
if [ "${#COMPOSE_FILES[@]}" -eq 0 ]; then
echo "No compose files found" >&2
exit 1
fi
printf '%s\n' "${COMPOSE_FILES[@]}" > docs/generated/compose-files.txt
ARGS=()
for file in "${COMPOSE_FILES[@]}"; do ARGS+=("-f" "$file"); done
ENV_FILE=""
if [ -f default-environment.env ]; then
ENV_FILE="default-environment.env"
else
ENV_FILE="scripts/docs/ci-default.env"
fi
if [ ! -f "$ENV_FILE" ]; then
echo "Environment file not found: $ENV_FILE" >&2
exit 1
fi
docker compose -p core --env-file "$ENV_FILE" --profile all "${ARGS[@]}" config > docs/generated/docker-compose.resolved.yml
service_count="$(
python3 - <<'PY'
import yaml
from pathlib import Path
data = yaml.safe_load(Path("docs/generated/docker-compose.resolved.yml").read_text()) or {}
print(len(data.get("services") or {}))
PY
)"
if [ "$service_count" -eq 0 ]; then
echo "ERROR: rendered compose config contains zero services; check --profile all / COMPOSE_PROFILES." >&2
exit 1
fi