#!/usr/bin/env bash # ================================================================ # SPS_SKEL - TROs ermitteln und TRO-Flussdiagramm erzeugen # ================================================================ # Aufruf: # bash bin/tro_flow.sh --file mubea.csv # bash bin/tro_flow.sh --file mubea.csv --tosvg # bash bin/tro_flow.sh --file mubea.csv --tosvg --doc # # Die CSV-Datei wird in $SKEL_DATA gesucht, DOT, SVG, Doku und # Fehlerdatei werden in $SKEL_RESULTS abgelegt. # # Schwesterprogramm: bin/material_flow.sh (Materialfluss der Objekte) # ================================================================ set -eu SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Umgebung setzen (SKEL_DATA, SKEL_RESULTS, SKEL_LIB, PYTHONPATH ...) # shellcheck source=/dev/null . "$SCRIPT_DIR/setenv.sh" >/dev/null # Virtuelle Umgebung nutzen, falls vorhanden (pydantic wird benoetigt) if [ -f "$SPS_SKEL/.venv/bin/activate" ]; then # shellcheck source=/dev/null . "$SPS_SKEL/.venv/bin/activate" fi # Python-Interpreter bestimmen PY="python3" command -v python3 >/dev/null 2>&1 || PY="python" # Graphviz pruefen, wenn --tosvg SVG erzeugen soll (dot, bei --use-cords/ # --use-coords neato) - nur ein frueher Hinweis; das eigentliche Skript # meldet denselben Fehler beim Rendern noch einmal im Detail. case " $* " in *" --tosvg "*) GV_ENGINE="dot" case " $* " in *" --use-cords "*|*" --use-coords "*) GV_ENGINE="neato" ;; esac if ! command -v "$GV_ENGINE" >/dev/null 2>&1; then if [ "$GV_ENGINE" != "dot" ] || [ -z "${GRAPHVIZ_DOT:-}" ]; then echo "WARNUNG: Graphviz '$GV_ENGINE' nicht im PATH gefunden - --tosvg wird vermutlich fehlschlagen." >&2 echo " Graphviz installieren (https://graphviz.org/download/), PATH ergaenzen," >&2 echo " oder GRAPHVIZ_DOT auf die dot-Programmdatei setzen (nur fuer 'dot')." >&2 echo "" >&2 fi fi ;; esac exec "$PY" "$SKEL_LIB/tro_flow.py" "$@"