feat: Tauri desktop shell — Rust backend + config files + build scripts
- desktop/Cargo.toml: Tauri + plugins (dialog, notification, fs, updater) - desktop/tauri.conf.json: Windows (.msi/.nsis) + Linux (.deb/.AppImage) config - desktop/src/main.rs: spawn Python backend, health check, tray icon, commands - desktop/build.rs: Tauri build hook - desktop/python-embed/sidecar.py: uvicorn launcher with port auto-detect - build-windows.bat: automated Windows build with Python embed download - build-linux.sh: automated Linux build with venv - desktop/README.md: architecture doc + usage guide - desktop/validate-structure.sh: CI validation script - ROADMAP.md: #77 Tauri Desktop section added
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
@echo off
|
||||
REM ============================================================
|
||||
REM ObsiGate Desktop — Build Windows (.msi + .exe)
|
||||
REM Prérequis : Rust, Tauri CLI, NSIS, Python 3.11 embed
|
||||
REM ============================================================
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
echo ========================================
|
||||
echo ObsiGate Desktop — Build Windows
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
REM ── 1. Vérifier les prérequis ─────────────────────────────────
|
||||
echo [1/6] Verifying prerequisites...
|
||||
where cargo >nul 2>&1 || (echo ❌ Rust/Cargo not found. Install from https://rustup.rs & exit /b 1)
|
||||
where tauri >nul 2>&1 || cargo install tauri-cli
|
||||
echo ✅ Rust + Tauri OK
|
||||
|
||||
REM ── 2. Préparer Python 3.11 embed ─────────────────────────────
|
||||
echo [2/6] Preparing Python embed...
|
||||
if not exist "python-embed\python.exe" (
|
||||
echo 📥 Downloading Python 3.11 embed...
|
||||
curl -L -o python-embed.zip "https://www.python.org/ftp/python/3.11.15/python-3.11.15-embed-amd64.zip"
|
||||
powershell Expand-Archive -Path python-embed.zip -DestinationPath python-embed\
|
||||
del python-embed.zip
|
||||
|
||||
REM Enable pip in embedded Python
|
||||
echo import site >> python-embed\python311._pth
|
||||
|
||||
REM Install dependencies
|
||||
python-embed\python.exe -m pip install --no-cache-dir -r ..\backend\requirements.txt
|
||||
)
|
||||
echo ✅ Python embed ready
|
||||
|
||||
REM ── 3. Copier le frontend ─────────────────────────────────────
|
||||
echo [3/6] Copying frontend...
|
||||
if exist "frontend-static" rmdir /s /q "frontend-static"
|
||||
xcopy /E /I /Q "..\frontend" "frontend-static"
|
||||
echo ✅ Frontend copied
|
||||
|
||||
REM ── 4. Mettre à jour les icônes ───────────────────────────────
|
||||
echo [4/6] Generating icons...
|
||||
REM Placeholder — will use tauri icon generator when icons are ready
|
||||
echo ✅ Icons OK (using defaults)
|
||||
|
||||
REM ── 5. Build Tauri ────────────────────────────────────────────
|
||||
echo [5/6] Building Tauri application...
|
||||
cargo tauri build --target x86_64-pc-windows-msvc --bundles msi,nsis
|
||||
if errorlevel 1 (
|
||||
echo ❌ Build failed!
|
||||
exit /b 1
|
||||
)
|
||||
echo ✅ Build successful
|
||||
|
||||
REM ── 6. Signer (optionnel) ─────────────────────────────────────
|
||||
echo [6/6] Results:
|
||||
dir /b target\release\bundle\msi\*.msi 2>nul
|
||||
dir /b target\release\bundle\nsis\*.exe 2>nul
|
||||
echo.
|
||||
echo ✅ Done! Check target\release\bundle\
|
||||
endlocal
|
||||
Reference in New Issue
Block a user