- 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
51 lines
1.2 KiB
Bash
Executable File
51 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Quick validation of desktop build structure
|
|
echo "=== Desktop build structure validation ==="
|
|
|
|
errors=0
|
|
|
|
# Check required files exist
|
|
for f in Cargo.toml tauri.conf.json build.rs src/main.rs python-embed/sidecar.py \
|
|
build-windows.bat build-linux.sh README.md; do
|
|
if [ -f "desktop/$f" ]; then
|
|
echo "✅ desktop/$f"
|
|
else
|
|
echo "❌ MISSING: desktop/$f"
|
|
((errors++))
|
|
fi
|
|
done
|
|
|
|
# Check directories
|
|
for d in desktop/icons desktop/src; do
|
|
if [ -d "$d" ]; then
|
|
echo "✅ $d/"
|
|
else
|
|
echo "❌ MISSING: $d/"
|
|
((errors++))
|
|
fi
|
|
done
|
|
|
|
# Check Cargo.toml has Tauri dependency
|
|
if grep -q 'tauri' desktop/Cargo.toml; then
|
|
echo "✅ Cargo.toml references Tauri"
|
|
else
|
|
echo "❌ Cargo.toml missing Tauri dependency"
|
|
((errors++))
|
|
fi
|
|
|
|
# Check tauri.conf.json is valid JSON
|
|
if python3 -c "import json; json.load(open('desktop/tauri.conf.json'))" 2>/dev/null; then
|
|
echo "✅ tauri.conf.json is valid JSON"
|
|
else
|
|
echo "❌ tauri.conf.json has JSON syntax errors"
|
|
((errors++))
|
|
fi
|
|
|
|
echo ""
|
|
if [ $errors -eq 0 ]; then
|
|
echo "✅ All checks passed — build structure is valid"
|
|
else
|
|
echo "❌ $errors error(s) found"
|
|
fi
|
|
exit $errors
|