param ( $Action, [hashtable] $Arguments ) . "$PSScriptRoot/../aliae/Manage.ps1"; . "$PSScriptRoot/../PowerShell/Profile.ps1"; . "$PSScriptRoot/../../Scripts/Software.ps1"; . "$PSScriptRoot/../../Types/InstallerAction.ps1"; Start-SoftwareInstaller @PSBoundParameters ` -Configurator { Add-PowerShellProfileStatement ` -System ` -Category "oh-my-posh" ` -Script ( @( "# Oh My Posh!", (Get-ScriptInitializer "oh-my-posh init pwsh"), (Get-ScriptInitializer "oh-my-posh completion powershell") ) -join [System.Environment]::NewLine) } ` -UserConfigurator { param( [hashtable] $Arguments ) $theme = Get-UserConfig "oh-my-posh.theme"; if ($theme) { $varName = "POSH_THEME"; if ($theme -isnot [string]) { $root = "$($IsWindows ? $env:AppData : "~/.config")/oh-my-posh"; $path = Join-Path $root "$($theme.name).omp.json"; $null = New-Item -Force -ItemType Directory $root; Set-Content $path ( & { if ($IsWindows) { wsl cat $theme.source } else { cat $theme.source } }); $theme = [string] $path; } if ($IsWindows) { [System.Environment]::SetEnvironmentVariable($varName, "%AppData%/$([System.IO.Path]::GetRelativePath($env:AppData, $path))", "User"); } else { . "$PSScriptRoot/../aliae/Manage.ps1"; Add-EnvironmentVariable -User $Arguments.Name $varName ($path).Replace("~", "{{ .Home }}"); } } };