From 70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 Mon Sep 17 00:00:00 2001 From: AlexanderCurl Date: Sat, 18 Apr 2026 17:46:06 +0100 Subject: Replaced file structures for themes in the correct format --- .../DankMaterialShell/core/internal/log/log.go | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/log.go (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/log.go') 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...) } -- cgit v1.3