Private/Set-OSDStageManifestApp.ps1
|
function Set-OSDStageManifestApp { [CmdletBinding()] param( [Parameter(Mandatory)]$Manifest, [Parameter(Mandatory)]$App ) if (-not $App.Id) { throw 'Manifest app entry must contain Id.' } $apps = @() if ($Manifest.PSObject.Properties.Name -contains 'Packages' -and $Manifest.Packages) { $apps = @( $Manifest.Packages | Where-Object { [string]$_.Id -ne [string]$App.Id } ) } $apps += $App if ($Manifest.PSObject.Properties.Name -contains 'Packages') { $Manifest.Packages = @($apps) } else { $Manifest | Add-Member -NotePropertyName Packages -NotePropertyValue @($apps) } $Manifest } |