oh-my-posh/src/cli/init.go
Jan De Dobbeleer a7b0021179 fix: correct debug logic
relates to #2234
2022-05-07 10:16:27 +02:00

67 lines
1.3 KiB
Go

package cli
import (
"fmt"
"oh-my-posh/environment"
"oh-my-posh/shell"
"github.com/spf13/cobra"
)
var (
print bool
strict bool
initCmd = &cobra.Command{
Use: "init [bash|zsh|fish|powershell|pwsh|cmd|nu] --config ~/.mytheme.omp.json",
Short: "Initialize your shell and config",
Long: `Initialize your shell and config.
See the documentation to initialize your shell: https://ohmyposh.dev/docs/installation/prompt.`,
ValidArgs: []string{
"bash",
"zsh",
"fish",
"powershell",
"pwsh",
"cmd",
"nu",
},
Args: NoArgsOrOneValidArg,
Run: func(cmd *cobra.Command, args []string) {
if len(args) == 0 {
_ = cmd.Help()
return
}
runInit(args[0])
},
}
)
func init() { // nolint:gochecknoinits
initCmd.Flags().BoolVarP(&print, "print", "p", false, "print the init script")
initCmd.Flags().BoolVarP(&strict, "strict", "s", false, "run in strict mode")
_ = initCmd.MarkPersistentFlagRequired("config")
rootCmd.AddCommand(initCmd)
}
func runInit(shellName string) {
env := &environment.ShellEnvironment{
Version: cliVersion,
CmdFlags: &environment.Flags{
Shell: shellName,
Config: config,
Strict: strict,
},
}
env.Init()
defer env.Close()
if print {
init := shell.PrintInit(env)
fmt.Print(init)
return
}
init := shell.Init(env)
fmt.Print(init)
}