Public/Invoke-DevVmActivate.ps1
|
<#
.SYNOPSIS Activates versions from .devvm configuration files. .DESCRIPTION Reads merged .devvm configuration (global + project) and activates all configured runtimes. This is useful to call in your PowerShell profile to auto-activate versions when you open a terminal. .PARAMETER Runtime If specified, only activates this specific runtime. Otherwise activates all configured runtimes. .PARAMETER Verify If specified, verifies each runtime command executes after activation by displaying its version output. Default is $false (no verification). .EXAMPLE Invoke-DevVmActivate Invoke-DevVmActivate -Runtime node Invoke-DevVmActivate -Verify #> function Invoke-DevVmActivate { [CmdletBinding()] param ( [string]$Runtime, [switch]$Verify = $false ) $merged = Get-DevVmMergedConfig -StartPath (Get-Location).Path if (-not $merged -or $merged.Count -eq 0) { Write-Verbose "No runtimes configured in .devvm files" return } foreach ($rt in $merged.Keys) { # Skip if specific runtime requested and this isn't it if ($Runtime -and $rt -ne $Runtime) { continue } $version = $merged[$rt] if ([string]::IsNullOrWhiteSpace($version)) { Write-Verbose "No version configured for $rt" continue } try { Set-DevVmVersion -Runtime $rt -Version $version -Persist session -Verify:$Verify -ErrorAction Stop } catch { Write-Warning "Failed to activate $rt version $version : $_" } } } |