#!/usr/bin/env bash # # Regeneriert die gebrandeten PDFs in public/dokumente/. # # Voraussetzungen: # - Google Chrome installiert (/Applications/Google Chrome.app) # - Für satzung.pdf: Dev-Server läuft -> npm run dev (http://localhost:4321) # # Quelle der PDFs: # - satzung.pdf <- die Astro-Seite /satzung (Print-CSS == PDF) # - beitragsordnung.pdf <- docs-src/beitragsordnung.html # - aufnahmeantrag.pdf <- docs-src/aufnahmeantrag.html # # Aufruf: bash docs-src/gen.sh set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" CHROME="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" OUT="$ROOT/public/dokumente" mkdir -p "$OUT" gen() { # $1 = url/file, $2 = output filename local prof; prof="$(mktemp -d)" # perl alarm = harte 45s-Schranke (macOS hat kein `timeout`; Chrome hängt gelegentlich) perl -e 'alarm 45; exec @ARGV' \ "$CHROME" --headless=new --disable-gpu --no-first-run --no-default-browser-check \ --user-data-dir="$prof" --hide-scrollbars --no-pdf-header-footer \ --print-to-pdf="$OUT/$2" "$1" >/dev/null 2>&1 || true rm -rf "$prof" echo " -> $2 ($(du -h "$OUT/$2" | cut -f1))" } echo "Generiere PDFs ..." gen "http://localhost:4321/satzung" "satzung.pdf" gen "file://$ROOT/docs-src/beitragsordnung.html" "beitragsordnung.pdf" gen "file://$ROOT/docs-src/aufnahmeantrag.html" "aufnahmeantrag.pdf" echo "Fertig."