Files
wms-app/scripts/verify-sdlc-delivery.sh
T

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."