Files
ai-shiliu/frontend/scripts/backend-build.bat

50 lines
1.6 KiB
Batchfile
Raw Normal View History

@echo off
setlocal enabledelayedexpansion
set "ROOT=%~dp0..\.."
for %%I in ("%ROOT%") do set "ROOT=%%~fI"
set "PYTHON=%ROOT%\.venv\Scripts\python.exe"
if not exist "%PYTHON%" (
echo Missing .venv\Scripts\python.exe
exit /b 1
)
"%PYTHON%" -m pip show rapidocr-onnxruntime >nul 2>nul
set "HAS_RAPIDOCR=%ERRORLEVEL%"
"%PYTHON%" -m pip show onnxruntime >nul 2>nul
set "HAS_ONNXRUNTIME=%ERRORLEVEL%"
if not "%HAS_RAPIDOCR%"=="0" goto install_ocr
if not "%HAS_ONNXRUNTIME%"=="0" goto install_ocr
goto after_install
:install_ocr
"%PYTHON%" -m pip install -r "%ROOT%\requirements.txt"
if errorlevel 1 exit /b 1
:after_install
"%PYTHON%" -m PyInstaller --version >nul
if errorlevel 1 exit /b 1
set "RESOURCES=%ROOT%\frontend\src-tauri\resources"
set "BACKEND_OUT=%RESOURCES%\backend"
set "BUILD_ROOT=%ROOT%\.build\pyinstaller"
set "STALE_ROOT=%ROOT%\.build\stale-resources"
if exist "%BACKEND_OUT%" (
rmdir /s /q "%BACKEND_OUT%" 2>nul
if exist "%BACKEND_OUT%" (
if not exist "%STALE_ROOT%" mkdir "%STALE_ROOT%"
set "STALE_NAME=backend-%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%"
set "STALE_NAME=!STALE_NAME: =0!"
move "%BACKEND_OUT%" "%STALE_ROOT%\!STALE_NAME!" >nul
)
)
if not exist "%RESOURCES%" mkdir "%RESOURCES%"
"%PYTHON%" -m PyInstaller --noconfirm --clean --onedir --name backend --distpath "%RESOURCES%" --workpath "%BUILD_ROOT%\work" --specpath "%BUILD_ROOT%\spec" --paths "%ROOT%" --collect-all rapidocr_onnxruntime --collect-all onnxruntime --copy-metadata rapidocr-onnxruntime --copy-metadata onnxruntime --add-data "%ROOT%\app;app" "%ROOT%\backend_main.py"
if errorlevel 1 exit /b 1
exit /b 0