Files

41 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
SRC="${PDF_OUTPUT:-/data/pdf/terminuebersicht.pdf}"
OUTDIR="${DASHBOARD_MONTH_DIR:-/var/www/html/intranet_repo/projects/dashboard/month}"
TMPDIR="$(mktemp -d)"
trap 'rm -rf "$TMPDIR"' EXIT
[ -s "$SRC" ] || { echo "PDF fehlt/leer: $SRC" >&2; exit 1; }
mkdir -p "$OUTDIR"
PAGES="$(pdfinfo "$SRC" 2>/dev/null | awk '/^Pages:/ {print $2}' || true)"
PAGES="${PAGES:-2}"
[ "$PAGES" -ge 1 ] || { echo "Ungültige Seitenzahl: $PAGES" >&2; exit 1; }
PAGE_LIST="1"
[ "$PAGES" -gt 1 ] && PAGE_LIST="1-2"
gs -dSAFER -dBATCH -dNOPAUSE \
-sDEVICE=pngalpha -r300 \
-dTextAlphaBits=4 -dGraphicsAlphaBits=4 \
-sPageList="$PAGE_LIST" \
-sOutputFile="$TMPDIR/terminuebersicht-%d.png" \
"$SRC"
[ -f "$TMPDIR/terminuebersicht-1.png" ] || { echo "PNG Seite 1 fehlt" >&2; exit 1; }
if command -v pngquant >/dev/null 2>&1; then
for f in "$TMPDIR"/terminuebersicht-*.png; do
[ -e "$f" ] || continue
pngquant --force --output "$f" "$f" || true
done
fi
mv -f "$TMPDIR/terminuebersicht-1.png" "$OUTDIR/terminuebersicht-1.png"
if [ -f "$TMPDIR/terminuebersicht-2.png" ]; then
mv -f "$TMPDIR/terminuebersicht-2.png" "$OUTDIR/terminuebersicht-2.png"
else
rm -f "$OUTDIR/terminuebersicht-2.png"
fi
chmod 0644 "$OUTDIR"/terminuebersicht-*.png