58 lines
1.7 KiB
PowerShell
58 lines
1.7 KiB
PowerShell
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, $path, "User");
|
|
} else {
|
|
. "$PSScriptRoot/../aliae/Manage.ps1";
|
|
Add-EnvironmentVariable -User $Arguments.Name $varName $path;
|
|
}
|
|
}
|
|
};
|