61 lines
1.5 KiB
Bash
61 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
# LaTeX Docker Builder Entrypoint
|
|
# Unterstützt Befehle:
|
|
# build [datei.tex] (Standard: baut seminararbeit.tex oder main.tex)
|
|
# clean (Führt latexmk -C aus)
|
|
# watch [datei.tex] (Kontinuierlicher Rebuild mit latexmk -pvc)
|
|
# Beliebiger Befehl (z.B. latexmk -pdf ...)
|
|
|
|
resolve_target() {
|
|
if [ -n "$1" ]; then
|
|
echo "$1"
|
|
elif [ -f "seminararbeit.tex" ]; then
|
|
echo "seminararbeit.tex"
|
|
elif [ -f "main.tex" ]; then
|
|
echo "main.tex"
|
|
else
|
|
# Fallback auf alle tex-Dateien oder Standard-latexmk-Verhalten
|
|
echo ""
|
|
fi
|
|
}
|
|
|
|
COMMAND="${1:-build}"
|
|
|
|
case "$COMMAND" in
|
|
build)
|
|
shift || true
|
|
TARGET=$(resolve_target "$1")
|
|
echo "==> Starte LaTeX Build..."
|
|
if [ -n "$TARGET" ]; then
|
|
echo "==> Kompiliere: $TARGET"
|
|
exec latexmk -pdf "$TARGET"
|
|
else
|
|
echo "==> Keine Hauptdatei angegeben, führe latexmk -pdf aus..."
|
|
exec latexmk -pdf
|
|
fi
|
|
;;
|
|
|
|
clean)
|
|
shift || true
|
|
echo "==> Bereinige Ausgabedateien (latexmk -C)..."
|
|
exec latexmk -C "$@"
|
|
;;
|
|
|
|
watch)
|
|
shift || true
|
|
TARGET=$(resolve_target "$1")
|
|
echo "==> Starte kontinuierlichen Watch-Modus (latexmk -pvc)..."
|
|
if [ -n "$TARGET" ]; then
|
|
exec latexmk -pvc -pdf "$TARGET"
|
|
else
|
|
exec latexmk -pvc -pdf
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
exec "$@"
|
|
;;
|
|
esac
|