mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-01-18 10:47:44 -06:00
5a98f63657
Sperated Winget and Chocolatey setps when installing software add skip them when not needed
74 lines
2.2 KiB
PowerShell
74 lines
2.2 KiB
PowerShell
Function Get-WinUtilCheckBoxes {
|
|
|
|
<#
|
|
|
|
.SYNOPSIS
|
|
Finds all checkboxes that are checked on the specific tab and inputs them into a script.
|
|
|
|
.PARAMETER Group
|
|
The group of checkboxes to check
|
|
|
|
.PARAMETER unCheck
|
|
Whether to uncheck the checkboxes that are checked. Defaults to true
|
|
|
|
.OUTPUTS
|
|
A List containing the name of each checked checkbox
|
|
|
|
.EXAMPLE
|
|
Get-WinUtilCheckBoxes "WPFInstall"
|
|
|
|
#>
|
|
|
|
Param(
|
|
[boolean]$unCheck = $false
|
|
)
|
|
|
|
$Output = @{
|
|
Install = @()
|
|
WPFTweaks = @()
|
|
WPFFeature = @()
|
|
WPFInstall = @()
|
|
}
|
|
|
|
$CheckBoxes = $sync.GetEnumerator() | Where-Object { $_.Value -is [System.Windows.Controls.CheckBox] }
|
|
|
|
foreach ($CheckBox in $CheckBoxes) {
|
|
$group = if ($CheckBox.Key.StartsWith("WPFInstall")) { "Install" }
|
|
elseif ($CheckBox.Key.StartsWith("WPFTweaks")) { "WPFTweaks" }
|
|
elseif ($CheckBox.Key.StartsWith("WPFFeature")) { "WPFFeature" }
|
|
if ($group) {
|
|
if ($CheckBox.Value.IsChecked -eq $true) {
|
|
$feature = switch ($group) {
|
|
"Install" {
|
|
# Get the winget value
|
|
[PsCustomObject]@{
|
|
winget="$($sync.configs.applications.$($CheckBox.Name).winget)";
|
|
choco="$($sync.configs.applications.$($CheckBox.Name).choco)";
|
|
}
|
|
|
|
}
|
|
default {
|
|
$CheckBox.Name
|
|
}
|
|
}
|
|
|
|
if (-not $Output.ContainsKey($group)) {
|
|
$Output[$group] = @()
|
|
}
|
|
if ($group -eq "Install") {
|
|
$Output["WPFInstall"] += $CheckBox.Name
|
|
Write-Debug "Adding: $($CheckBox.Name) under: WPFInstall"
|
|
}
|
|
|
|
Write-Debug "Adding: $($feature) under: $($group)"
|
|
$Output[$group] += $feature
|
|
|
|
if ($uncheck -eq $true) {
|
|
$CheckBox.Value.IsChecked = $false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return $Output
|
|
}
|