mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-14 14:45:52 -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
54 lines
2.3 KiB
PowerShell
54 lines
2.3 KiB
PowerShell
function Invoke-WPFTweakPS7{
|
|
<#
|
|
.SYNOPSIS
|
|
This will edit the config file of the Windows Terminal Replacing the Powershell 5 to Powershell 7 and install Powershell 7 if necessary
|
|
.PARAMETER action
|
|
PS7: Configures Powershell 7 to be the default Terminal
|
|
PS5: Configures Powershell 5 to be the default Terminal
|
|
#>
|
|
param (
|
|
[ValidateSet("PS7", "PS5")]
|
|
[string]$action
|
|
)
|
|
|
|
switch ($action) {
|
|
"PS7"{
|
|
if (Test-Path -Path "$env:ProgramFiles\PowerShell\7") {
|
|
Write-Host "Powershell 7 is already installed."
|
|
} else {
|
|
Write-Host "Installing Powershell 7..."
|
|
Invoke-WinUtilWingetProgram -Action Install -Programs @("Microsoft.PowerShell")
|
|
}
|
|
$targetTerminalName = "PowerShell"
|
|
}
|
|
"PS5"{
|
|
$targetTerminalName = "Windows PowerShell"
|
|
}
|
|
}
|
|
# Check if the Windows Terminal is installed and return if not (Prerequisite for the following code)
|
|
if (-not (Get-Command "wt" -ErrorAction SilentlyContinue)) {
|
|
Write-Host "Windows Terminal not installed. Skipping Terminal preference"
|
|
return
|
|
}
|
|
# Check if the Windows Terminal settings.json file exists and return if not (Prereqisite for the following code)
|
|
$settingsPath = "$env:LOCALAPPDATA\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json"
|
|
if (-not (Test-Path -Path $settingsPath)) {
|
|
Write-Host "Windows Terminal Settings file not found at $settingsPath"
|
|
return
|
|
}
|
|
|
|
Write-Host "Settings file found."
|
|
$settingsContent = Get-Content -Path $settingsPath | ConvertFrom-Json
|
|
$ps7Profile = $settingsContent.profiles.list | Where-Object { $_.name -eq $targetTerminalName }
|
|
if ($ps7Profile) {
|
|
$settingsContent.defaultProfile = $ps7Profile.guid
|
|
$updatedSettings = $settingsContent | ConvertTo-Json -Depth 100
|
|
Set-Content -Path $settingsPath -Value $updatedSettings
|
|
Write-Host "Default profile updated to " -NoNewline
|
|
Write-Host "$targetTerminalName " -ForegroundColor White -NoNewline
|
|
Write-Host "using the name attribute."
|
|
} else {
|
|
Write-Host "No PowerShell 7 profile found in Windows Terminal settings using the name attribute."
|
|
}
|
|
}
|