50 lines
1.6 KiB
Batchfile
50 lines
1.6 KiB
Batchfile
|
|
@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
|