PoshPalette.psm1
|
# PoshPalette.psm1 - module entry point. Dot-sources sources and exposes the # public commands. . "$PSScriptRoot/src/Jsonc.ps1" . "$PSScriptRoot/src/Theme.ps1" . "$PSScriptRoot/src/Prompt.ps1" . "$PSScriptRoot/src/Appliers.ps1" . "$PSScriptRoot/src/Layers.ps1" . "$PSScriptRoot/src/Import.ps1" . "$PSScriptRoot/src/Remote.ps1" . "$PSScriptRoot/src/Fonts.ps1" . "$PSScriptRoot/src/Doctor.ps1" . "$PSScriptRoot/src/Tui.ps1" # Headless install by name: `Install-PoshPaletteTheme 'tokyo-night'` function Install-PoshPaletteTheme { [CmdletBinding()] param( [Parameter(Mandatory, Position = 0)][string] $NameOrPath, [switch] $DryRun ) $theme = Import-PoshPaletteTheme -NameOrPath $NameOrPath Set-PoshPaletteTheme -Theme $theme -DryRun:$DryRun # Remember the composition so later per-layer tweaks build on this theme. if (-not $DryRun) { try { $comp = if (Test-Path $NameOrPath) { Get-Content $NameOrPath -Raw | ConvertFrom-Json } else { (Get-PoshPaletteThemes | Where-Object { $_.Id -eq $NameOrPath -or $_.Name -eq $NameOrPath } | Select-Object -First 1).Data } if ($comp) { Save-PoshPaletteCurrentComposition (ConvertTo-PoshPaletteHashtable $comp) } } catch { Write-Verbose "Could not save current composition: $_" } } } # Friendly entry point: `palette` launches the interactive picker. Set-Alias -Name palette -Value Start-PoshPalette Export-ModuleMember -Function Start-PoshPalette, Install-PoshPaletteTheme, Get-PoshPaletteThemes, Set-PoshPaletteTheme, Import-PoshPaletteTheme, Restore-PoshPalette, Import-PoshPaletteScheme, Get-PoshPaletteRemoteCatalog, Save-PoshPaletteRemoteTheme, Test-PoshPaletteSetup, Install-PoshPaletteFont, Set-PoshPaletteScheme, Set-PoshPaletteColors, Set-PoshPalettePrompt, Set-PoshPaletteFont, Set-PoshPaletteLayer -Alias palette |