#!/usr/bin/env bash # ============================================================================== # LaTeX Docker Build Skript (Bash / Linux / macOS / WSL) # ============================================================================== set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" TARGET_DIR="${1:-""}" # Wenn kein Pfad übergeben: # 1. Wenn im aktuellen Verzeichnis *.tex liegt -> nimm das aktuelle Verzeichnis # 2. Sonst prüfe Standard-Projektordner ../Seminar_Arbeit_BITI_Gruber if [ -z "$TARGET_DIR" ]; then if compgen -G "*.tex" > /dev/null 2>&1; then PROJECT_DIR="$(pwd)" elif [ -d "${SCRIPT_DIR}/../Seminar_Arbeit_BITI_Gruber" ]; then PROJECT_DIR="${SCRIPT_DIR}/../Seminar_Arbeit_BITI_Gruber" else PROJECT_DIR="$(pwd)" fi else PROJECT_DIR="$TARGET_DIR" fi IMAGE_NAME="latex-docker:latest" ACTION="${2:-build}" if ! command -v docker &> /dev/null; then echo "Fehler: Docker ist nicht installiert oder nicht in PATH." >&2 exit 1 fi PROJECT_FULL_PATH="$(cd "$PROJECT_DIR" && pwd)" echo "==> Projektpfad: $PROJECT_FULL_PATH" echo "==> Aktion: $ACTION" case "$ACTION" in clean) docker run --rm -v "${PROJECT_FULL_PATH}:/workspace" -w /workspace "$IMAGE_NAME" clean ;; watch) docker run --rm -it -v "${PROJECT_FULL_PATH}:/workspace" -w /workspace "$IMAGE_NAME" watch ;; build) docker run --rm -v "${PROJECT_FULL_PATH}:/workspace" -w /workspace "$IMAGE_NAME" build ;; *) docker run --rm -v "${PROJECT_FULL_PATH}:/workspace" -w /workspace "$IMAGE_NAME" "$ACTION" "${@:3}" ;; esac echo "==> Fertig!"