mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-01-18 02:37:43 -06:00
0981509cfb
* Install flow rework Sperated Winget and Chocolatey setps when installing software add skip them when not needed * fix uninstall --------- Co-authored-by: Chris Titus <contact@christitus.com>
84 lines
2.6 KiB
PowerShell
84 lines
2.6 KiB
PowerShell
Function Get-WinUtilCheckBoxes {
|
|
|
|
<#
|
|
|
|
.SYNOPSIS
|
|
Finds all checkboxes that are checked on the specific tab and inputs them into a script.
|
|
|
|
.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] }
|
|
|
|
# First check and add WPFTweaksRestorePoint if checked
|
|
$RestorePoint = $CheckBoxes | Where-Object { $_.Key -eq 'WPFTweaksRestorePoint' -and $_.Value.IsChecked -eq $true }
|
|
if ($RestorePoint) {
|
|
$Output["WPFTweaks"] = @('WPFTweaksRestorePoint')
|
|
Write-Debug "Adding WPFTweaksRestorePoint as first in WPFTweaks"
|
|
|
|
if ($unCheck) {
|
|
$RestorePoint.Value.IsChecked = $false
|
|
}
|
|
}
|
|
|
|
foreach ($CheckBox in $CheckBoxes) {
|
|
if ($CheckBox.Key -eq 'WPFTweaksRestorePoint') { continue } # Skip since it's already handled
|
|
|
|
$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) {
|
|
$CheckBox.Value.IsChecked = $false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return $Output
|
|
}
|