Skip to content

Commit 6bd1d9d

Browse files
committed
fix: use one level style embed
1 parent dd99c2a commit 6bd1d9d

File tree

2 files changed

+35
-26
lines changed

2 files changed

+35
-26
lines changed

log/command.go

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66
"strings"
77

8+
"github.com/charmbracelet/lipgloss"
89
"github.com/charmbracelet/log"
910
)
1011

@@ -28,21 +29,24 @@ func (o Options) Run() error {
2829
l.SetTimeFormat(o.TimeFormat)
2930

3031
st := log.DefaultStyles()
31-
st.Levels[log.DebugLevel] = o.LevelDebugStyle.ToLipgloss().
32-
Inline(true).
33-
SetString(strings.ToUpper(log.DebugLevel.String()))
34-
st.Levels[log.InfoLevel] = o.LevelInfoStyle.ToLipgloss().
35-
Inline(true).
36-
SetString(strings.ToUpper(log.InfoLevel.String()))
37-
st.Levels[log.WarnLevel] = o.LevelWarnStyle.ToLipgloss().
38-
Inline(true).
39-
SetString(strings.ToUpper(log.WarnLevel.String()))
40-
st.Levels[log.ErrorLevel] = o.LevelErrorStyle.ToLipgloss().
41-
Inline(true).
42-
SetString(strings.ToUpper(log.ErrorLevel.String()))
43-
st.Levels[log.FatalLevel] = o.LevelFatalStyle.ToLipgloss().
44-
Inline(true).
45-
SetString(strings.ToUpper(log.FatalLevel.String()))
32+
defaultColors := map[log.Level]lipgloss.Color{
33+
log.DebugLevel: lipgloss.Color("63"),
34+
log.InfoLevel: lipgloss.Color("83"),
35+
log.WarnLevel: lipgloss.Color("192"),
36+
log.ErrorLevel: lipgloss.Color("204"),
37+
log.FatalLevel: lipgloss.Color("134"),
38+
}
39+
40+
lvlStyle := o.LevelStyle.ToLipgloss()
41+
if lvlStyle.GetForeground() == lipgloss.Color("") {
42+
lvlStyle = lvlStyle.Foreground(defaultColors[levelToLog[o.Level]])
43+
}
44+
45+
lvl := levelToLog[o.Level]
46+
st.Levels[lvl] = lvlStyle.
47+
SetString(strings.ToUpper(lvl.String())).
48+
Inline(true)
49+
4650
st.Timestamp = o.TimeStyle.ToLipgloss().
4751
Inline(true)
4852
st.Prefix = o.PrefixStyle.ToLipgloss().
@@ -104,3 +108,12 @@ type logger struct {
104108
printf func(string, ...interface{})
105109
print func(interface{}, ...interface{})
106110
}
111+
112+
var levelToLog = map[string]log.Level{
113+
"none": log.Level(math.MaxInt32),
114+
"debug": log.DebugLevel,
115+
"info": log.InfoLevel,
116+
"warn": log.WarnLevel,
117+
"error": log.ErrorLevel,
118+
"fatal": log.FatalLevel,
119+
}

log/options.go

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,13 @@ type Options struct {
1818
Time bool `help:"Whether to print the time"`
1919
TimeFormat string `help:"The time format to use" default:"2006/01/02 15:04:05"`
2020

21-
LevelDebugStyle style.Styles `embed:"" prefix:"level.debug." help:"The style of the debug level" set:"defaultBold=true" set:"defaultForeground=63" envprefix:"GUM_LOG_LEVEL_DEBUG_"` //nolint:staticcheck
22-
LevelInfoStyle style.Styles `embed:"" prefix:"level.info." help:"The style of the info level" set:"defaultBold=true" set:"defaultForeground=83" envprefix:"GUM_LOG_LEVEL_INFO_"` //nolint:staticcheck
23-
LevelWarnStyle style.Styles `embed:"" prefix:"level.warn." help:"The style of the warn level" set:"defaultBold=true" set:"defaultForeground=192" envprefix:"GUM_LOG_LEVEL_WARN_"` //nolint:staticcheck
24-
LevelErrorStyle style.Styles `embed:"" prefix:"level.error." help:"The style of the error level" set:"defaultBold=true" set:"defaultForeground=204" envprefix:"GUM_LOG_LEVEL_ERROR_"` //nolint:staticcheck
25-
LevelFatalStyle style.Styles `embed:"" prefix:"level.fatal." help:"The style of the fatal level" set:"defaultBold=true" set:"defaultForeground=134" envprefix:"GUM_LOG_LEVEL_FATAL_"` //nolint:staticcheck
26-
TimeStyle style.Styles `embed:"" prefix:"time." help:"The style of the time" envprefix:"GUM_LOG_TIME_"`
27-
PrefixStyle style.Styles `embed:"" prefix:"prefix." help:"The style of the prefix" set:"defaultBold=true" set:"defaultFaint=true" envprefix:"GUM_LOG_PREFIX_"` //nolint:staticcheck
28-
MessageStyle style.Styles `embed:"" prefix:"message." help:"The style of the message" envprefix:"GUM_LOG_MESSAGE_"`
29-
KeyStyle style.Styles `embed:"" prefix:"key." help:"The style of the key" set:"defaultFaint=true" envprefix:"GUM_LOG_KEY_"`
30-
ValueStyle style.Styles `embed:"" prefix:"value." help:"The style of the value" envprefix:"GUM_LOG_VALUE_"`
31-
SeparatorStyle style.Styles `embed:"" prefix:"separator." help:"The style of the separator" set:"defaultFaint=true" envprefix:"GUM_LOG_SEPARATOR_"`
21+
LevelStyle style.Styles `embed:"" prefix:"level." help:"The style of the level being used" set:"defaultBold=true" envprefix:"GUM_LOG_LEVEL_"` //nolint:staticcheck
22+
TimeStyle style.Styles `embed:"" prefix:"time." help:"The style of the time" envprefix:"GUM_LOG_TIME_"`
23+
PrefixStyle style.Styles `embed:"" prefix:"prefix." help:"The style of the prefix" set:"defaultBold=true" set:"defaultFaint=true" envprefix:"GUM_LOG_PREFIX_"` //nolint:staticcheck
24+
MessageStyle style.Styles `embed:"" prefix:"message." help:"The style of the message" envprefix:"GUM_LOG_MESSAGE_"`
25+
KeyStyle style.Styles `embed:"" prefix:"key." help:"The style of the key" set:"defaultFaint=true" envprefix:"GUM_LOG_KEY_"`
26+
ValueStyle style.Styles `embed:"" prefix:"value." help:"The style of the value" envprefix:"GUM_LOG_VALUE_"`
27+
SeparatorStyle style.Styles `embed:"" prefix:"separator." help:"The style of the separator" set:"defaultFaint=true" envprefix:"GUM_LOG_SEPARATOR_"`
3228
}
3329

3430
// BeforeReset hook. Used to unclutter style flags.

0 commit comments

Comments
 (0)