mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-05-10 00:02:09 +00:00
60 lines
2.1 KiB
PowerShell
60 lines
2.1 KiB
PowerShell
function Get-WinUtilSelectedPackages
|
|
{
|
|
<#
|
|
.SYNOPSIS
|
|
Sorts given packages based on installer preference and availability.
|
|
|
|
.OUTPUTS
|
|
Hashtable. Key = Package Manager, Value = ArrayList of packages to install
|
|
#>
|
|
param (
|
|
[Parameter(Mandatory=$true)]
|
|
$PackageList,
|
|
[Parameter(Mandatory=$true)]
|
|
[PackageManagers]$Preference
|
|
)
|
|
|
|
if ($PackageList.count -eq 1) {
|
|
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -state "Indeterminate" -value 0.01 -overlay "logo" })
|
|
} else {
|
|
$sync.form.Dispatcher.Invoke([action]{ 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
|
|
|
|
Write-Debug "Checking packages using Preference '$($Preference)'"
|
|
|
|
foreach ($package in $PackageList) {
|
|
switch ($Preference) {
|
|
"Choco" {
|
|
if ($package.choco -eq "na") {
|
|
Write-Debug "$($package.content) has no Choco value."
|
|
$packagesWinget.add($package.winget)
|
|
Write-Host "Queueing $($package.winget) for Winget"
|
|
} else {
|
|
$null = $packagesChoco.add($package.choco)
|
|
Write-Host "Queueing $($package.choco) for Chocolatey"
|
|
}
|
|
break
|
|
}
|
|
"Winget" {
|
|
if ($package.winget -eq "na") {
|
|
Write-Debug "$($package.content) has no Winget value."
|
|
$packagesChoco.add($package.choco)
|
|
Write-Host "Queueing $($package.choco) for Chocolatey"
|
|
} else {
|
|
$null = $packagesWinget.add($($package.winget))
|
|
Write-Host "Queueing $($package.winget) for Winget"
|
|
}
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
return $packages
|
|
}
|