PortValhalla/scripts/Common/Software/Oh My Posh/Manage.ps1

58 lines
1.8 KiB
PowerShell
Raw Normal View History

param (
$Action,
[hashtable] $Arguments
)
2024-08-23 21:53:48 +00:00
. "$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)
2024-08-23 21:53:48 +00:00
} `
-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
}
});
2024-08-23 21:53:48 +00:00
$theme = [string] $path;
}
if ($IsWindows) {
2024-09-08 15:42:11 +00:00
[System.Environment]::SetEnvironmentVariable($varName, "%AppData%/$([System.IO.Path]::GetRelativePath($env:AppData, $path))", "User");
2024-08-23 21:53:48 +00:00
} else {
. "$PSScriptRoot/../aliae/Manage.ps1";
2024-09-08 15:42:11 +00:00
Add-EnvironmentVariable -User $Arguments.Name $varName ($path).Replace("~", "{{ .Home }}");
2024-08-23 21:53:48 +00:00
}
}
};