Private/Get-ADTWinGetArgArray.ps1
#----------------------------------------------------------------------------- # # MARK: Get-ADTWinGetArgArray # #----------------------------------------------------------------------------- function Get-ADTWinGetArgArray { [CmdletBinding()] [OutputType([System.String])] param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCmdlet]$Cmdlet, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [System.String]$Action, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [System.String]$LogFile, [Parameter(Mandatory = $false)] [ValidateNotNullOrEmpty()] [System.String[]]$Exclude ) # Define exclusions. $exclusions = $(if ($Exclude) { $Exclude }; if ($Action.Equals('list')) { 'Version' }) # Standard args. $Action '--exact' '--verbose-logs' '--accept-source-agreements' # Calculated args from function's parameter block. $cpaParams = @{ Invocation = $Cmdlet.MyInvocation ParameterSetName = $Action HelpMessage = 'WinGet Argument' Preset = 'WinGet' } if ($exclusions) { $cpaParams.Add('Exclude', $exclusions) } Convert-ADTFunctionParamsToArgArray @cpaParams # Calculated args based on the function's action. if ($Action.Equals('install')) { '--accept-package-agreements' } if (!$Action.Equals('list')) { '--silent' '--log'; $LogFile } } |