diff options
| author | AlexanderCurl <alexc@alexc.hu> | 2026-04-18 17:46:06 +0100 |
|---|---|---|
| committer | AlexanderCurl <alexc@alexc.hu> | 2026-04-18 17:46:06 +0100 |
| commit | 70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 (patch) | |
| tree | ab1123d4067c1b086dd6faa7ee4ea643236b565a /raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/log.go | |
| parent | 5d94c0a7d44a2255b81815a52a7056a94a39842d (diff) | |
| download | RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.tar.gz RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.zip | |
Replaced file structures for themes in the correct format
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/log.go')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/log.go | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/log.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/log.go new file mode 100644 index 0000000..6b3ede3 --- /dev/null +++ b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/log.go @@ -0,0 +1,116 @@ +package log + +import ( + "os" + "strings" + "sync" + + "github.com/charmbracelet/lipgloss" + cblog "github.com/charmbracelet/log" +) + +// Logger embeds the Charm Logger and adds Printf/Fatalf +type Logger struct{ *cblog.Logger } + +// Printf routes goose/info-style logs through Infof. +func (l *Logger) Printf(format string, v ...any) { l.Infof(format, v...) } + +// Fatalf keeps goose’s contract of exiting the program. +func (l *Logger) Fatalf(format string, v ...any) { l.Logger.Fatalf(format, v...) } + +var ( + logger *Logger + initLogger sync.Once +) + +func parseLogLevel(level string) cblog.Level { + switch strings.ToLower(level) { + case "debug": + return cblog.DebugLevel + case "info": + return cblog.InfoLevel + case "warn", "warning": + return cblog.WarnLevel + case "error": + return cblog.ErrorLevel + case "fatal": + return cblog.FatalLevel + default: + return cblog.InfoLevel + } +} + +func GetQtLoggingRules() string { + level := os.Getenv("DMS_LOG_LEVEL") + if level == "" { + level = "info" + } + + var rules []string + switch strings.ToLower(level) { + case "fatal": + rules = []string{"*.debug=false", "*.info=false", "*.warning=false", "*.critical=false"} + case "error": + rules = []string{"*.debug=false", "*.info=false", "*.warning=false"} + case "warn", "warning": + rules = []string{"*.debug=false", "*.info=false"} + case "info": + rules = []string{"*.debug=false"} + case "debug": + return "" + default: + rules = []string{"*.debug=false"} + } + + return strings.Join(rules, ";") +} + +// GetLogger returns a logger instance +func GetLogger() *Logger { + initLogger.Do(func() { + styles := cblog.DefaultStyles() + // Attempt to match the colors used by qml/quickshell logs + styles.Levels[cblog.FatalLevel] = lipgloss.NewStyle(). + SetString(" FATAL"). + Foreground(lipgloss.Color("1")) + styles.Levels[cblog.ErrorLevel] = lipgloss.NewStyle(). + SetString(" ERROR"). + Foreground(lipgloss.Color("9")) + styles.Levels[cblog.WarnLevel] = lipgloss.NewStyle(). + SetString(" WARN"). + Foreground(lipgloss.Color("3")) + styles.Levels[cblog.InfoLevel] = lipgloss.NewStyle(). + SetString(" INFO"). + Foreground(lipgloss.Color("2")) + styles.Levels[cblog.DebugLevel] = lipgloss.NewStyle(). + SetString(" DEBUG"). + Foreground(lipgloss.Color("4")) + + base := cblog.New(os.Stderr) + base.SetStyles(styles) + base.SetReportTimestamp(false) + + level := cblog.InfoLevel + if envLevel := os.Getenv("DMS_LOG_LEVEL"); envLevel != "" { + level = parseLogLevel(envLevel) + } + base.SetLevel(level) + base.SetPrefix(" go") + + logger = &Logger{base} + }) + return logger +} + +// * Convenience wrappers + +func Debug(msg any, keyvals ...any) { GetLogger().Debug(msg, keyvals...) } +func Debugf(format string, v ...any) { GetLogger().Debugf(format, v...) } +func Info(msg any, keyvals ...any) { GetLogger().Info(msg, keyvals...) } +func Infof(format string, v ...any) { GetLogger().Infof(format, v...) } +func Warn(msg any, keyvals ...any) { GetLogger().Warn(msg, keyvals...) } +func Warnf(format string, v ...any) { GetLogger().Warnf(format, v...) } +func Error(msg any, keyvals ...any) { GetLogger().Error(msg, keyvals...) } +func Errorf(format string, v ...any) { GetLogger().Errorf(format, v...) } +func Fatal(msg any, keyvals ...any) { GetLogger().Fatal(msg, keyvals...) } +func Fatalf(format string, v ...any) { GetLogger().Fatalf(format, v...) } |