mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-12-22 14:01:31 -06:00
3903eaaa24
* Replace Tabs with Spaces to follow the conventions
* Add Preprocessing in Compiler
* Compile from Anywhere you want - Running 'Compile.ps1' Works in any directory you call it from
* Code Formatting Changes
* Result of Preprocessing Step in 'Compile.ps1' Script - Remove Trailing Whitespace Characters
* Make Preprocessing more advanced
* Move Preprocessing to a separate script file
* Make Self Modification impossible for 'tools/Do-PreProcessing.ps1' Script - Make the workingdir same as sync.PSScriptRoot for consistency
* Revert commit b5dffd671f
* Patched a Bug of some Excluded Files not actually get excluded in 'Get-ChildItem' PS Cmdlet
* Update Replace Regex for Code Formatting in 'Do-PreProcessing' Script Tool
* Rename 'Do-PreProcessing' to 'Invoke-Preprocessing' - Update some Comments
* Make 'Invoke-Preprocessing' Modular - Update RegEx to handle more cases - Update Documentation - Add Validations & Useful feedback upon error
* Replace Tabs with Spaces to follow the conventions - 'applications.json' File
* Code Formatting Changes - 'Copy-Files' Private Function
* Update Replace Regex for Code Formatting in 'Invoke-Preprocessing' Script Tool
* Replace Tabs with Spaces to follow the conventions - Make 'ExcludedFiles' validation step check all filepaths before finally checking if any has failed
* Result of 'Invoke-Preprocessing' Script
* Update Replace Regex for Code Formatting in 'Invoke-Preprocessing' Script Tool
51 lines
1.4 KiB
PowerShell
51 lines
1.4 KiB
PowerShell
function Set-WinUtilUITheme {
|
|
<#
|
|
.SYNOPSIS
|
|
Sets the theme of the XAML file
|
|
|
|
.PARAMETER inputXML
|
|
A string representing the XAML object to modify
|
|
|
|
.PARAMETER themeName
|
|
The name of the theme to set the XAML to. Defaults to 'matrix'
|
|
|
|
.EXAMPLE
|
|
Set-WinUtilUITheme -inputXAML $inputXAML
|
|
#>
|
|
|
|
param
|
|
(
|
|
[Parameter(Mandatory, position=0)]
|
|
[string]$inputXML,
|
|
[Parameter(position=1)]
|
|
[string]$themeName = 'matrix'
|
|
)
|
|
|
|
try {
|
|
# Convert the JSON to a PowerShell object
|
|
$themes = $sync.configs.themes
|
|
# Select the specified theme
|
|
$selectedTheme = $themes.$themeName
|
|
|
|
if ($selectedTheme) {
|
|
# Loop through all key-value pairs in the selected theme
|
|
foreach ($property in $selectedTheme.PSObject.Properties) {
|
|
$key = $property.Name
|
|
$value = $property.Value
|
|
# Add curly braces around the key
|
|
$formattedKey = "{$key}"
|
|
# Replace the key with the value in the input XML
|
|
$inputXML = $inputXML.Replace($formattedKey, $value)
|
|
}
|
|
} else {
|
|
Write-Host "Theme '$themeName' not found."
|
|
}
|
|
|
|
} catch {
|
|
Write-Warning "Unable to apply theme"
|
|
Write-Warning $psitem.Exception.StackTrace
|
|
}
|
|
|
|
return $inputXML;
|
|
}
|