mirror of
https://github.com/JanDeDobbeleer/oh-my-posh.git
synced 2025-03-05 20:49:04 -08:00
feat: export-poshtheme to clipboard if no file path provided
This commit is contained in:
parent
3b975aa3f1
commit
6671ed068c
|
@ -69,7 +69,7 @@ function global:Initialize-ModuleSupport {
|
||||||
# read stack count from current stack(if invoked from profile=right value,otherwise use the global variable set in Set-PoshPrompt(stack scoped to module))
|
# read stack count from current stack(if invoked from profile=right value,otherwise use the global variable set in Set-PoshPrompt(stack scoped to module))
|
||||||
$stackCount = (Get-Location -stack).Count
|
$stackCount = (Get-Location -stack).Count
|
||||||
try {
|
try {
|
||||||
if($global:omp_global_sessionstate -ne $null){
|
if ($global:omp_global_sessionstate -ne $null) {
|
||||||
$stackCount = ($global:omp_global_sessionstate).path.locationstack('').count
|
$stackCount = ($global:omp_global_sessionstate).path.locationstack('').count
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -104,25 +104,52 @@ function global:Write-PoshDebug {
|
||||||
$standardOut -join "`n"
|
$standardOut -join "`n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Exports the current oh-my-posh theme
|
||||||
|
.DESCRIPTION
|
||||||
|
By default the config is exported in json to the clipboard
|
||||||
|
.EXAMPLE
|
||||||
|
Export-PoshTheme
|
||||||
|
Current theme exported in json to clipboard
|
||||||
|
.EXAMPLE
|
||||||
|
Export-PoshTheme -Format toml
|
||||||
|
Current theme exported in toml to clipboard
|
||||||
|
.EXAMPLE
|
||||||
|
Export-PoshTheme c:\temp\theme.toml toml
|
||||||
|
Current theme exported in toml to c:\temp\theme.toml
|
||||||
|
.EXAMPLE
|
||||||
|
Export-PoshTheme ~\theme.toml toml
|
||||||
|
Current theme exported in toml to your home\theme.toml
|
||||||
|
#>
|
||||||
function global:Export-PoshTheme {
|
function global:Export-PoshTheme {
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory = $true)]
|
[Parameter(Mandatory = $false)]
|
||||||
[string]
|
[string]
|
||||||
|
# The file path where the theme will be exported. If not provided, the config is copied to the clipboard by default.
|
||||||
$FilePath,
|
$FilePath,
|
||||||
[Parameter(Mandatory = $false)]
|
[Parameter(Mandatory = $false)]
|
||||||
[ValidateSet('json', 'yaml', 'toml')]
|
[ValidateSet('json', 'yaml', 'toml')]
|
||||||
[string]
|
[string]
|
||||||
|
# The format of the theme
|
||||||
$Format = 'json'
|
$Format = 'json'
|
||||||
)
|
)
|
||||||
|
|
||||||
if ($FilePath.StartsWith('~')) {
|
|
||||||
$FilePath = $FilePath.Replace('~', $HOME)
|
|
||||||
}
|
|
||||||
|
|
||||||
$config = $global:PoshSettings.Theme
|
$config = $global:PoshSettings.Theme
|
||||||
$omp = "::OMP::"
|
$omp = "::OMP::"
|
||||||
$configString = @(&$omp --config="$config" --config-format="$Format" --print-config 2>&1)
|
$configString = @(&$omp --config="$config" --config-format="$Format" --print-config 2>&1)
|
||||||
[IO.File]::WriteAllLines($FilePath, $configString)
|
|
||||||
|
# if no path, copy to clipboard by default
|
||||||
|
if ($FilePath -ne "") {
|
||||||
|
if ($FilePath.StartsWith('~')) {
|
||||||
|
$FilePath = $FilePath.Replace('~', $HOME)
|
||||||
|
}
|
||||||
|
[IO.File]::WriteAllLines($FilePath, $configString)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Set-Clipboard $configString
|
||||||
|
Write-Output "Theme copied to clipboard"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function global:Export-PoshImage {
|
function global:Export-PoshImage {
|
||||||
|
|
Loading…
Reference in a new issue