54 lines
1.6 KiB
Bash
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!"
|