- Enhanced Flutter web app management in PowerShell scripts - Added Flutter web server to start-services.ps1 as 4th service - Updated stop-services.ps1 to stop Flutter web server - Improved service orchestration and startup sequence - Implemented server caching for improved resilience - Added ServerCacheService for browser localStorage caching - Server lists persist across service restarts - Automatic fallback to cached data when API unavailable - Action picker categories always visible regardless of server status - Redesigned Action Mappings view with compact table layout - Replaced card-based ListView with DataTable for higher density - Added real-time search across name, input, output, description - Implemented multi-filter support (status: enabled/disabled) - Added column sorting (name, input, output, status, executions) - Batch operations: select all/multiple, batch delete - Reduced row height from ~120px to 56px for better overview - Redesigned Servers Management view with compact table layout - Replaced card-based ListView with DataTable - Added search by alias, host, user - Multi-filter support (type: all/G-Core/GeViScope, status: all/enabled/disabled) - Column sorting (alias, host, user, type, status) - Batch operations: select all/multiple, batch delete - Color-coded type and status badges - Improved action picker dialog for GSC/G-Core actions - GSC and G-Core categories always visible - Server validation with clear error messages - Fixed duplicate checkbox issue in table headers - Debug logging for troubleshooting server parameter issues 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
77 lines
2.9 KiB
PowerShell
77 lines
2.9 KiB
PowerShell
# Stop Geutebruck API Services
|
|
# This script stops Flutter Web, Python API, SDK Bridge, and GeViServer
|
|
#
|
|
# Usage:
|
|
# .\stop-services.ps1 # Stop all services
|
|
# .\stop-services.ps1 -KeepGeViServer # Stop only API/Bridge, keep GeViServer running
|
|
|
|
param(
|
|
[switch]$KeepGeViServer
|
|
)
|
|
|
|
$ErrorActionPreference = "SilentlyContinue"
|
|
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
if ($KeepGeViServer) {
|
|
Write-Host "Stopping API Services (keeping GeViServer)" -ForegroundColor Cyan
|
|
} else {
|
|
Write-Host "Stopping Geutebruck API Services" -ForegroundColor Cyan
|
|
}
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
|
|
# Stop Flutter Web Server
|
|
$flutterPort = Get-NetTCPConnection -LocalPort 8081 -State Listen -ErrorAction SilentlyContinue
|
|
if ($flutterPort) {
|
|
$flutterPid = $flutterPort | Select-Object -First 1 -ExpandProperty OwningProcess
|
|
Write-Host "[1/4] Stopping Flutter Web (PID: $flutterPid)..." -ForegroundColor Yellow
|
|
Stop-Process -Id $flutterPid -Force
|
|
Write-Host " [OK] Flutter Web stopped" -ForegroundColor Green
|
|
} else {
|
|
Write-Host "[1/4] Flutter Web is not running" -ForegroundColor Gray
|
|
}
|
|
|
|
# Stop Python API
|
|
$uvicorn = Get-Process -Name "uvicorn"
|
|
if ($uvicorn) {
|
|
Write-Host "[2/4] Stopping Python API (PID: $($uvicorn.Id))..." -ForegroundColor Yellow
|
|
Stop-Process -Name "uvicorn" -Force
|
|
Write-Host " [OK] Python API stopped" -ForegroundColor Green
|
|
} else {
|
|
Write-Host "[2/4] Python API is not running" -ForegroundColor Gray
|
|
}
|
|
|
|
# Stop SDK Bridge
|
|
$sdkBridge = Get-Process -Name "GeViScopeBridge"
|
|
if ($sdkBridge) {
|
|
Write-Host "[3/4] Stopping SDK Bridge (PID: $($sdkBridge.Id))..." -ForegroundColor Yellow
|
|
Stop-Process -Name "GeViScopeBridge" -Force
|
|
Write-Host " [OK] SDK Bridge stopped" -ForegroundColor Green
|
|
} else {
|
|
Write-Host "[3/4] SDK Bridge is not running" -ForegroundColor Gray
|
|
}
|
|
|
|
# Stop GeViServer (unless -KeepGeViServer flag is set)
|
|
if (-not $KeepGeViServer) {
|
|
$geviServer = Get-Process -Name "GeViServer"
|
|
if ($geviServer) {
|
|
Write-Host "[4/4] Stopping GeViServer (PID: $($geviServer.Id))..." -ForegroundColor Yellow
|
|
Stop-Process -Name "GeViServer" -Force
|
|
Write-Host " [OK] GeViServer stopped" -ForegroundColor Green
|
|
} else {
|
|
Write-Host "[4/4] GeViServer is not running" -ForegroundColor Gray
|
|
}
|
|
} else {
|
|
$geviServer = Get-Process -Name "GeViServer"
|
|
if ($geviServer) {
|
|
Write-Host "[4/4] Keeping GeViServer running (PID: $($geviServer.Id))" -ForegroundColor Green
|
|
} else {
|
|
Write-Host "[4/4] GeViServer is not running (cannot keep)" -ForegroundColor Yellow
|
|
}
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "========================================" -ForegroundColor Green
|
|
Write-Host "Services Stopped" -ForegroundColor Green
|
|
Write-Host "========================================" -ForegroundColor Green
|