78 lines
2.3 KiB
Batchfile
78 lines
2.3 KiB
Batchfile
@echo off
|
|
setlocal EnableExtensions
|
|
cd /d "%~dp0"
|
|
chcp 65001 >nul 2>&1
|
|
|
|
echo === md2gost: сборка exe ===
|
|
echo Каталог: %CD%
|
|
echo Python: 3.11 ^(ищем, не берём первый python из PATH^)
|
|
echo.
|
|
|
|
call "%~dp0build-find-python311.bat"
|
|
if errorlevel 1 goto :nopython
|
|
if not defined PYEXE goto :nopython
|
|
|
|
echo [1/4] Зависимости проекта + PyInstaller + matplotlib ...
|
|
"%PYEXE%" -m pip install -q -e . "pyinstaller>=6.0" "matplotlib>=3.7" "tkinterdnd2"
|
|
if errorlevel 1 goto :pipfail
|
|
|
|
if not exist "md2gost\Template.docx" goto :notemplate
|
|
|
|
echo [2/4] PlantUML jar + Graphviz + Mermaid assets ...
|
|
"%PYEXE%" scripts\fetch_plantuml.py
|
|
if not exist "md2gost\vendor\plantuml.jar" (
|
|
echo Предупреждение: plantuml.jar нет — в exe UML пойдёт через kroki.io.
|
|
)
|
|
"%PYEXE%" scripts\fetch_graphviz.py
|
|
if not exist "md2gost\vendor\graphviz\bin\dot.exe" (
|
|
echo Предупреждение: Graphviz нет — в exe DFD пойдёт через kroki.io / PATH.
|
|
)
|
|
if not exist "md2gost\diagrams\mermaid.min.js" (
|
|
"%PYEXE%" scripts\fetch_mermaid.py
|
|
)
|
|
if not exist "md2gost\diagrams\mermaid.min.js" (
|
|
echo Предупреждение: mermaid.min.js нет — браузерный Mermaid в exe без assets.
|
|
)
|
|
|
|
echo [3/4] PyInstaller, один файл, без консоли; CLI подцепит консоль сам ...
|
|
"%PYEXE%" -m PyInstaller --noconfirm --clean md2gost.spec
|
|
if errorlevel 1 goto :pyifail
|
|
|
|
if not exist "dist\md2gost.exe" goto :noexe
|
|
|
|
echo.
|
|
echo [4/4] Готово:
|
|
echo %CD%\dist\md2gost.exe
|
|
echo.
|
|
echo Двойной клик — GUI. Из консоли: md2gost.exe report.md -o report.docx
|
|
echo.
|
|
if /i "%~1"=="nopause" goto :eof
|
|
pause
|
|
exit /b 0
|
|
|
|
:nopython
|
|
echo Нужен именно Python 3.11. Через uv без системного 3.11: build-exe-uvx.bat
|
|
goto :fail
|
|
|
|
:pipfail
|
|
echo Не удалось поставить зависимости.
|
|
goto :fail
|
|
|
|
:notemplate
|
|
echo Нет md2gost\Template.docx — сборка бессмысленна.
|
|
goto :fail
|
|
|
|
:pyifail
|
|
echo PyInstaller завершился с ошибкой.
|
|
goto :fail
|
|
|
|
:noexe
|
|
echo dist\md2gost.exe не появился.
|
|
goto :fail
|
|
|
|
:fail
|
|
echo.
|
|
echo Сборка не удалась.
|
|
if /i not "%~1"=="nopause" pause
|
|
exit /b 1
|