scripts/win/docker/clean.ps1
param( [Parameter(Mandatory = $false, Position = 0)] [string]$ContainerName ) Clear-Host # ╭────────────────────────────────────────────────────────────╮ # │ 💣 Docker SQL Cleanup — BORG-Managed Containers Only │ # ╰────────────────────────────────────────────────────────────╯ $separator = "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" Write-Host $separator -ForegroundColor DarkRed Write-Host "💣 Docker SQL Cleanup — BORG-Managed Containers Only" -ForegroundColor Red Write-Host $separator -ForegroundColor DarkRed Write-Host "" # 🔧 Function: Remove a container gracefully function Remove-ContainerByName { param([string]$Name) Write-Host "🗑️ Attempting to remove container: $Name" -ForegroundColor Yellow try { docker stop $Name | Out-Null docker rm $Name | Out-Null Write-Host "✅ Container '$Name' removed successfully." -ForegroundColor Green } catch { Write-Host "❌ Error removing container '$Name': $_" -ForegroundColor Red } } # 🔍 Main logic if ($ContainerName) { Write-Host "🔎 Checking for container: '$ContainerName'" -ForegroundColor Cyan $containerExists = docker ps -a --format "{{.Names}}" | Where-Object { $_ -eq $ContainerName } if ($containerExists) { Remove-ContainerByName -Name $ContainerName } else { Write-Host "🚫 Container '$ContainerName' not found." -ForegroundColor Red } } else { Write-Host "🧹 No specific container passed. Targeting all **BORG-managed** SQL Server containers..." -ForegroundColor Yellow $allBorgSqlContainers = docker ps -a --format "{{.Names}}" | Where-Object { $_ -like "sqlserver-*" } if ($allBorgSqlContainers) { foreach ($container in $allBorgSqlContainers) { Remove-ContainerByName -Name $container } } else { Write-Host "✅ No BORG-managed containers found to remove. Clean slate!" -ForegroundColor Green } } # 🏁 Outro Write-Host "" Write-Host "🎯 Cleanup routine complete. System standing by." -ForegroundColor Cyan Write-Host $separator -ForegroundColor DarkRed |