Files
latex-docker/build-seminar.sh

54 lines
1.6 KiB
Bash

#!/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!"