Files
winutil/functions/private/Get-WinUtilSelectedPackages.ps1
T
Chris TitusandGitHub 2cb20893fc Expand Pester coverage across install, tweaks, and UI workflows (#4792)
* Harden Pester CI and discard runspace return values

* Add prioritized test backlog

* Add WinUtil action logging

* Add config integrity tests

* Add XAML control wiring tests

* Add registry and service helper tests

* Add package manager tests

* Add runspace behavior tests

* Add tweak orchestration tests

* Add install workflow tests

* Add update profile tests

* Add AppX removal tests

* Log package installer output

* Add UI state helper tests

* Pin Pester test runner version

* Expand Win11 Creator tests

* Add preferences and theme tests

* Add search filter tests

* Add compile contract tests

* Use single WinUtil session log

* Remove installer output logging helper

* Handle locked WinUtil transcript log

* Avoid appending to active transcript log

* Log install uninstall package identities
2026-07-01 21:49:15 -05:00

56 lines
1.7 KiB
PowerShell

function Get-WinUtilSelectedPackages {
param(
[Parameter(Mandatory = $true)]
[object] $PackageList,
[Parameter(Mandatory = $true)]
[PackageManagers] $Preference
)
if ($PackageList.count -eq 1) {
Invoke-WPFUIThread -ScriptBlock { Set-WinUtilTaskbaritem -state "Indeterminate" -value 0.01 -overlay "logo" }
} else {
Invoke-WPFUIThread -ScriptBlock { Set-WinUtilTaskbaritem -state "Normal" -value 0.01 -overlay "logo" }
}
$packages = [System.Collections.Hashtable]::new()
$packagesWinget = [System.Collections.ArrayList]::new()
$packagesChoco = [System.Collections.ArrayList]::new()
$packages[[PackageManagers]::Winget] = $packagesWinget
$packages[[PackageManagers]::Choco] = $packagesChoco
function Add-PackageId {
param(
[System.Collections.ArrayList]$Target,
$PackageId
)
if ([string]::IsNullOrWhiteSpace([string]$PackageId) -or $PackageId -eq "na") {
return
}
if (-not $Target.Contains($PackageId)) {
$null = $Target.Add($PackageId)
}
}
foreach ($package in $PackageList) {
switch ($Preference) {
"Choco" {
if ([string]::IsNullOrWhiteSpace([string]$package.choco) -or $package.choco -eq "na") {
Add-PackageId -Target $packagesWinget -PackageId $package.winget
} else {
Add-PackageId -Target $packagesChoco -PackageId $package.choco
}
}
"Winget" {
Add-PackageId -Target $packagesWinget -PackageId $package.winget
}
}
}
return $packages
}