@echo off setlocal EnableExtensions chcp 65001 >nul cd /d "%~dp0" echo === md2gost: сборка exe === echo Каталог: %CD% echo. where python >nul 2>&1 if errorlevel 1 ( echo Python не найден в PATH. Установите Python 3.10+ и отметьте "Add python.exe to PATH". goto :fail ) python -c "import sys; raise SystemExit(0 if sys.version_info >= (3, 10) else 1)" if errorlevel 1 ( echo Нужен Python 3.10 или новее. python --version goto :fail ) echo [1/4] Зависимости проекта + PyInstaller + matplotlib ... python -m pip install -q -e . "pyinstaller>=6.0" "matplotlib>=3.7" if errorlevel 1 ( echo Не удалось поставить зависимости. goto :fail ) if not exist "md2gost\Template.docx" ( echo Нет md2gost\Template.docx — сборка бессмысленна. goto :fail ) echo [2/4] PlantUML jar (вшивается в exe, если скачается^) ... python scripts\fetch_plantuml.py if not exist "md2gost\vendor\plantuml.jar" ( echo Предупреждение: plantuml.jar нет — в exe диаграммы пойдут через kroki.io. ) echo [3/4] PyInstaller (один файл, без консоли; CLI подцепит консоль сам^) ... python -m PyInstaller --noconfirm --clean md2gost.spec if errorlevel 1 ( echo PyInstaller завершился с ошибкой. goto :fail ) if not exist "dist\md2gost.exe" ( echo dist\md2gost.exe не появился. goto :fail ) 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 :fail echo. echo Сборка не удалась. if /i not "%~1"=="nopause" pause exit /b 1