29 lines
1.1 KiB
Bash
Executable File
29 lines
1.1 KiB
Bash
Executable File
#!/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."
|