Fix BOM breaking bin/*.bat and add early Graphviz check to --tosvg wrappers
setenv.bat (and activate_venv/get_cmd/install_py.bat) had a UTF-8 BOM, which cmd.exe read as part of the @echo off line, breaking every bin script that calls setenv.bat via `call`. Stripped the BOM. material_flow.bat/.sh and tro_flow.bat/.sh now check up front whether the Graphviz engine --tosvg needs (dot, or neato with --use-cords) is resolvable, and print an early WARNUNG with fix instructions if not - before the CSV is even parsed. The Python scripts still run and report the same failure in detail if the SVG step is actually reached.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
@echo off
|
||||
@echo off
|
||||
REM ================================================================
|
||||
REM SPS_SKEL - Python Virtual Environment aktivieren
|
||||
REM ================================================================
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
@echo off
|
||||
@echo off
|
||||
REM ================================================================
|
||||
REM SPS_SKEL - Shell mit gesetzten Umgebungsvariablen oeffnen
|
||||
REM ================================================================
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
@echo off
|
||||
@echo off
|
||||
REM ================================================================
|
||||
REM SPS_SKEL - Python Virtual Environment einrichten
|
||||
REM ================================================================
|
||||
|
||||
@@ -24,6 +24,26 @@ REM Python-Interpreter bestimmen (py-Launcher bevorzugt, sonst python)
|
||||
set "PY=py"
|
||||
py --version >nul 2>&1 || set "PY=python"
|
||||
|
||||
REM Graphviz pruefen, wenn --tosvg SVG erzeugen soll (dot, bei --use-cords/
|
||||
REM --use-coords neato) - nur ein frueher Hinweis; das eigentliche Skript
|
||||
REM meldet denselben Fehler beim Rendern noch einmal im Detail.
|
||||
set "GV_ENGINE=dot"
|
||||
echo %*| findstr /i /c:"--use-cords" /c:"--use-coords" >nul && set "GV_ENGINE=neato"
|
||||
echo %*| findstr /i /c:"--tosvg" >nul
|
||||
if not errorlevel 1 (
|
||||
where %GV_ENGINE%.exe >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
set "GV_OK="
|
||||
if /i "%GV_ENGINE%"=="dot" if defined GRAPHVIZ_DOT set "GV_OK=1"
|
||||
if not defined GV_OK (
|
||||
echo WARNUNG: Graphviz '%GV_ENGINE%' nicht im PATH gefunden - --tosvg wird vermutlich fehlschlagen.
|
||||
echo Graphviz installieren ^(https://graphviz.org/download/^), den bin-Ordner
|
||||
echo zum PATH hinzufuegen, oder GRAPHVIZ_DOT auf die dot.exe setzen ^(nur fuer 'dot'^).
|
||||
echo.
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
"%PY%" "%SKEL_LIB%\material_flow.py" %*
|
||||
set "RC=%ERRORLEVEL%"
|
||||
|
||||
|
||||
@@ -28,4 +28,24 @@ fi
|
||||
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/material_flow.py" "$@"
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
@echo off
|
||||
@echo off
|
||||
|
||||
REM ================================================================
|
||||
REM SPS_SKEL - Umgebungsvariablen Setup
|
||||
|
||||
@@ -27,6 +27,26 @@ REM Python-Interpreter bestimmen (py-Launcher bevorzugt, sonst python)
|
||||
set "PY=py"
|
||||
py --version >nul 2>&1 || set "PY=python"
|
||||
|
||||
REM Graphviz pruefen, wenn --tosvg SVG erzeugen soll (dot, bei --use-cords/
|
||||
REM --use-coords neato) - nur ein frueher Hinweis; das eigentliche Skript
|
||||
REM meldet denselben Fehler beim Rendern noch einmal im Detail.
|
||||
set "GV_ENGINE=dot"
|
||||
echo %*| findstr /i /c:"--use-cords" /c:"--use-coords" >nul && set "GV_ENGINE=neato"
|
||||
echo %*| findstr /i /c:"--tosvg" >nul
|
||||
if not errorlevel 1 (
|
||||
where %GV_ENGINE%.exe >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
set "GV_OK="
|
||||
if /i "%GV_ENGINE%"=="dot" if defined GRAPHVIZ_DOT set "GV_OK=1"
|
||||
if not defined GV_OK (
|
||||
echo WARNUNG: Graphviz '%GV_ENGINE%' nicht im PATH gefunden - --tosvg wird vermutlich fehlschlagen.
|
||||
echo Graphviz installieren ^(https://graphviz.org/download/^), den bin-Ordner
|
||||
echo zum PATH hinzufuegen, oder GRAPHVIZ_DOT auf die dot.exe setzen ^(nur fuer 'dot'^).
|
||||
echo.
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
"%PY%" "%SKEL_LIB%\tro_flow.py" %*
|
||||
set "RC=%ERRORLEVEL%"
|
||||
|
||||
|
||||
@@ -31,4 +31,24 @@ fi
|
||||
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" "$@"
|
||||
|
||||
Reference in New Issue
Block a user