#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" ROOT_DIR="$(cd -- "$SCRIPT_DIR/.." && pwd)" SOURCE_DIR="$ROOT_DIR/sdlc" TOOL_DIR="$SCRIPT_DIR/sdlc-delivery" PACKAGE_DIR="$(realpath -m "${1:-$ROOT_DIR/sdlc-delivery}")" [[ -d "$PACKAGE_DIR" ]] || { echo "Delivery package not found: $PACKAGE_DIR" >&2; exit 2; } expected="$(find "$SOURCE_DIR" -type f -name '*.md' | wc -l | tr -d ' ')" produced="$(find "$PACKAGE_DIR" -type f -name '*.pdf' | wc -l | tr -d ' ')" [[ "$expected" == "$produced" ]] || { echo "Expected $expected PDFs, found $produced." >&2; exit 1; } node "$TOOL_DIR/verify-content.mjs" "$SOURCE_DIR" "$PACKAGE_DIR" format_errors=0 while IFS= read -r -d '' pdf; do page_size="$(pdfinfo "$pdf" | awk -F': *' '/^Page size/ {print $2}')" case "$page_size" in '594.96 x 841.92 pts (A4)'|'841.92 x 594.96 pts (A4)') ;; *) echo "Non-A4 PDF: $pdf ($page_size)" >&2; format_errors=$((format_errors + 1));; esac done < <(find "$PACKAGE_DIR" -type f -name '*.pdf' -print0 | sort -z) [[ "$format_errors" == 0 ]] || exit 1 echo "Format verification passed: $produced PDFs use A4 portrait or landscape."