mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2026-08-10 01:51:18 +10:00
56 lines
1.6 KiB
PowerShell
56 lines
1.6 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" }
|
|
}
|
|
|
|
$packagesWinget = [System.Collections.ArrayList]::new()
|
|
$packagesChoco = [System.Collections.ArrayList]::new()
|
|
$packages = @{
|
|
([PackageManagers]::Winget) = $packagesWinget
|
|
([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
|
|
}
|