oh-my-posh/src/segments/winreg.go
2022-06-07 07:09:32 +02:00

50 lines
1 KiB
Go

package segments
import (
"oh-my-posh/environment"
"oh-my-posh/properties"
)
type WindowsRegistry struct {
props properties.Properties
env environment.Environment
Value string
}
const (
// full path to the key; if ends in \, gets "(Default)" key in that path
RegistryPath properties.Property = "path"
// Fallback is the text to display if the key is not found
Fallback properties.Property = "fallback"
)
func (wr *WindowsRegistry) Template() string {
return " {{ .Value }} "
}
func (wr *WindowsRegistry) Init(props properties.Properties, env environment.Environment) {
wr.props = props
wr.env = env
}
func (wr *WindowsRegistry) Enabled() bool {
if wr.env.GOOS() != environment.WindowsPlatform {
return false
}
registryPath := wr.props.GetString(RegistryPath, "")
wr.Value = wr.props.GetString(Fallback, "")
regValue, err := wr.env.WindowsRegistryKeyValue(registryPath)
if err == nil {
wr.Value = regValue.String
return true
}
if len(wr.Value) > 0 {
// we have fallback value
return true
}
return false
}