feat(debug): remove the need to specify shell

This commit is contained in:
Jan De Dobbeleer 2024-11-14 07:48:06 +01:00 committed by Jan De Dobbeleer
parent b21c2d2c71
commit bebadac664
12 changed files with 22 additions and 17 deletions

View file

@ -61,7 +61,7 @@ body:
id: logs
attributes:
label: Log output
description: Please copy and paste the output generated by `oh-my-posh debug <shell> --plain`.
description: Please copy and paste the output generated by `oh-my-posh debug --plain`.
render: Shell
validations:
required: true

View file

@ -2,6 +2,7 @@ package cli
import (
"fmt"
"os"
"time"
"github.com/jandedobbeleer/oh-my-posh/src/build"
@ -24,30 +25,25 @@ func init() {
func createDebugCmd() *cobra.Command {
debugCmd := &cobra.Command{
Use: "debug [bash|zsh|fish|powershell|pwsh|cmd|nu|tcsh|elvish|xonsh]",
Use: "debug",
Short: "Print the prompt in debug mode",
Long: "Print the prompt in debug mode.",
ValidArgs: supportedShells,
Args: NoArgsOrOneValidArg,
Run: func(cmd *cobra.Command, args []string) {
Run: func(_ *cobra.Command, _ []string) {
startTime := time.Now()
if len(args) == 0 {
_ = cmd.Help()
return
}
log.Enable()
log.Debug("debug mode enabled")
shell := os.Getenv("POSH_SHELL")
configFile := config.Path(configFlag)
cfg := config.Load(configFile, args[0], false)
cfg := config.Load(configFile, shell, false)
flags := &runtime.Flags{
Config: configFile,
Debug: true,
PWD: pwd,
Shell: args[0],
Shell: shell,
Plain: plain,
}
@ -61,7 +57,7 @@ func createDebugCmd() *cobra.Command {
env.Close()
}()
terminal.Init(args[0])
terminal.Init(shell)
terminal.BackgroundColor = cfg.TerminalBackground.ResolveTemplate()
terminal.Colors = cfg.MakeColors(env)
terminal.Plain = plain

View file

@ -62,7 +62,7 @@ func Path(config string) string {
hasConfig := len(config) > 0
if poshTheme := os.Getenv("POSH_THEME"); len(poshTheme) > 0 && !hasConfig {
log.Debug("config set using POSH_THEME: %s", poshTheme)
log.Debug("config set using POSH_THEME:", poshTheme)
return poshTheme
}

View file

@ -1,4 +1,5 @@
export POSH_THEME=::CONFIG::
export POSH_SHELL='bash'
export POSH_SHELL_VERSION=$BASH_VERSION
export POWERLINE_COMMAND='oh-my-posh'
export POSH_SESSION_ID=::SESSION_ID::

View file

@ -1,5 +1,6 @@
set-env POSH_SESSION_ID ::SESSION_ID::
set-env POSH_THEME ::CONFIG::
set-env POSH_SHELL elvish
set-env POSH_SHELL_VERSION $version
set-env POWERLINE_COMMAND oh-my-posh

View file

@ -1,4 +1,5 @@
set --export POSH_THEME ::CONFIG::
set --export POSH_SHELL fish
set --export POSH_SHELL_VERSION $FISH_VERSION
set --export POWERLINE_COMMAND oh-my-posh
set --export POSH_SESSION_ID ::SESSION_ID::

View file

@ -2,8 +2,9 @@
---@diagnostic disable: undefined-field
---@diagnostic disable: lowercase-global
-- Cache PID
-- Environment variables
os.setenv('POSH_SESSION_ID', '::SESSION_ID::')
os.setenv('POSH_SHELL', 'cmd')
-- Helper functions

View file

@ -7,6 +7,7 @@ $env.POWERLINE_COMMAND = 'oh-my-posh'
$env.POSH_THEME = (echo ::CONFIG::)
$env.PROMPT_INDICATOR = ""
$env.POSH_SESSION_ID = (echo ::SESSION_ID::)
$env.POSH_SHELL = "nu"
$env.POSH_SHELL_VERSION = (version | get version)
let _omp_executable: string = (echo ::OMP::)

View file

@ -39,6 +39,7 @@ New-Module -Name "oh-my-posh-core" -ScriptBlock {
$script:JobCount = 0
$env:POWERLINE_COMMAND = "oh-my-posh"
$env:POSH_SHELL = "pwsh"
$env:POSH_SHELL_VERSION = $script:PSVersion
$env:POSH_SESSION_ID = ::SESSION_ID::
$env:CONDA_PROMPT_MODIFIER = $false

View file

@ -1,5 +1,6 @@
setenv POWERLINE_COMMAND "oh-my-posh";
setenv POSH_THEME ::CONFIG::;
setenv POSH_SHELL "tcsh";
setenv POSH_SHELL_VERSION "$tcsh";
setenv POSH_SESSION_ID ::SESSION_ID::;
setenv OSTYPE "$OSTYPE";

View file

@ -1,6 +1,7 @@
$POWERLINE_COMMAND = "oh-my-posh"
$POSH_THEME = ::CONFIG::
$POSH_SESSION_ID = ::SESSION_ID::
$POSH_SHELL = "xonsh"
$POSH_SHELL_VERSION = $XONSH_VERSION
_omp_executable = ::OMP::

View file

@ -1,4 +1,5 @@
export POSH_THEME=::CONFIG::
export POSH_SHELL='zsh'
export POSH_SHELL_VERSION=$ZSH_VERSION
export POSH_SESSION_ID=::SESSION_ID::
export POWERLINE_COMMAND='oh-my-posh'