Private/Logic/RuntimeKernel/Facts/Manifested.RuntimeFacts.Dispatch.ps1
|
function Get-ManifestedPythonEmbeddableRuntimeFactsFromDefinition { [CmdletBinding()] param( [Parameter(Mandatory = $true)] [pscustomobject]$Definition, [string]$LocalRoot = (Get-ManifestedLocalRoot) ) return (Get-PythonRuntimeFacts -LocalRoot $LocalRoot) } function Get-ManifestedMachinePrerequisiteFactsFromDefinition { [CmdletBinding()] param( [Parameter(Mandatory = $true)] [pscustomobject]$Definition, [string]$LocalRoot = (Get-ManifestedLocalRoot) ) return (Get-VCRuntimeFacts -LocalRoot $LocalRoot) } function Get-ManifestedRuntimeFactsFromContext { [CmdletBinding()] param( [Parameter(Mandatory = $true)] [pscustomobject]$Context, [string]$LocalRoot = (Get-ManifestedLocalRoot), [hashtable]$FactsCache = @{} ) $cacheKey = if ($Context.PSObject.Properties['RuntimeName']) { [string]$Context.RuntimeName } else { $null } if (-not [string]::IsNullOrWhiteSpace($cacheKey) -and $FactsCache.ContainsKey($cacheKey)) { return $FactsCache[$cacheKey] } if ($Context.PSObject.Properties['ExecutionModel'] -and $Context.ExecutionModel -eq 'DefinitionBlocks' -and $Context.PSObject.Properties['Definition'] -and $Context.Definition) { $facts = $null if (Get-ManifestedDefinitionBlock -Definition $Context.Definition -SectionName 'facts' -BlockName 'portableRuntime') { $facts = Get-ManifestedPortableRuntimeFactsFromDefinition -Definition $Context.Definition -LocalRoot $LocalRoot } elseif (Get-ManifestedDefinitionBlock -Definition $Context.Definition -SectionName 'facts' -BlockName 'pythonEmbeddableRuntime') { $facts = Get-ManifestedPythonEmbeddableRuntimeFactsFromDefinition -Definition $Context.Definition -LocalRoot $LocalRoot } elseif (Get-ManifestedDefinitionBlock -Definition $Context.Definition -SectionName 'facts' -BlockName 'machinePrerequisite') { $facts = Get-ManifestedMachinePrerequisiteFactsFromDefinition -Definition $Context.Definition -LocalRoot $LocalRoot } elseif (Get-ManifestedDefinitionBlock -Definition $Context.Definition -SectionName 'facts' -BlockName 'npmCli') { $facts = Get-ManifestedNpmCliFactsFromDefinition -Definition $Context.Definition -LocalRoot $LocalRoot } else { throw "No fact collector is defined for '$($Context.CommandName)'." } if (-not [string]::IsNullOrWhiteSpace($cacheKey)) { $FactsCache[$cacheKey] = $facts } return $facts } $facts = (& $Context.FactsFunction -LocalRoot $LocalRoot) if (-not [string]::IsNullOrWhiteSpace($cacheKey)) { $FactsCache[$cacheKey] = $facts } return $facts } |