ps/Modules/Alkami.DevOps.Minikube/Public/Restart-Wsl.ps1
2023-05-30 22:51:22 -07:00

46 lines
1023 B
PowerShell

function Restart-Wsl {
<#
.SYNOPSIS
Restarts Wsl and waits for it to restart
.DESCRIPTION
Restarts Wsl and waits for it to restart
.EXAMPLE
Restart-Wsl
#>
[CmdletBinding()]
param()
$ErrorActionPreference = "Stop"
$logLead = (Get-LogLeadName)
Write-Host "$logLead : Stopping all Docker Desktop processes"
Get-Process "*docker desktop*" | Stop-Process
Write-Host "$logLead : Shutting down WSL"
wsl --shutdown
Write-Host "$logLead : Waiting for Wsl to shutdown"
Start-Sleep -Seconds 5
Write-Host "$logLead : Starting all Docker Desktop processes"
Start-Process "C:\Program Files\Docker\Docker\Docker Desktop.exe"
Write-Host "$logLead : Waiting for Docker Desktop to startup"
$job = Start-Job -ScriptBlock {
do
{
docker version
}
while($lastexitcode -ne 0)
}
Wait-Job -Job $job | Out-Null
Remove-Job -Job $job
Write-Host "$logLead : Wsl successfully restarted"
}