DravenBlack's picture
Upload 95 files
a712336 verified
function Create-VM {
if (-not (docker images windows-local -q)) {
Write-Host "Image not found locally. Building..."
docker build -t windows-local ..
} else {
Write-Host "Image found locally. Skipping build."
}
docker compose -f ../compose.yml up -d
while ($true) {
try {
$response = Invoke-WebRequest -Uri "http://localhost:5000/probe" -Method GET -UseBasicParsing
if ($response.StatusCode -eq 200) {
break
}
} catch {
Write-Host "Waiting for a response from the computer control server. When first building the VM storage folder this can take a while..."
Start-Sleep -Seconds 5
}
}
Write-Host "VM + server is up and running!"
}
function Start-LocalVM {
Write-Host "Starting VM..."
docker compose -f ../compose.yml start
while ($true) {
try {
$response = Invoke-WebRequest -Uri "http://localhost:5000/probe" -Method GET -UseBasicParsing
if ($response.StatusCode -eq 200) {
break
}
} catch {
Write-Host "Waiting for a response from the computer control server"
Start-Sleep -Seconds 5
}
}
Write-Host "VM started"
}
function Stop-LocalVM {
Write-Host "Stopping VM..."
docker compose -f ../compose.yml stop
Write-Host "VM stopped"
}
function Remove-VM {
Write-Host "Removing VM and associated containers..."
docker compose -f ../compose.yml down
Write-Host "VM removed"
}
if (-not $args[0]) {
Write-Host "Usage: $($MyInvocation.MyCommand.Name) [create|start|stop|delete]"
exit 1
}
switch ($args[0]) {
"create" { Create-VM }
"start" { Start-LocalVM }
"stop" { Stop-LocalVM }
"delete" { Remove-VM }
default {
Write-Host "Invalid option: $($args[0])"
Write-Host "Usage: $($MyInvocation.MyCommand.Name) [create|start|stop|delete]"
exit 1
}
}