From a2b924d7e9492b978ad6dc33b6c1ffcb304b4bc5 Mon Sep 17 00:00:00 2001 From: Nippy Date: Sat, 9 May 2026 13:33:09 +0200 Subject: raveos update --- .../core/internal/log/filelogger.go | 114 -------------------- .../DankMaterialShell/core/internal/log/log.go | 116 --------------------- 2 files changed, 230 deletions(-) delete mode 100644 raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/filelogger.go delete mode 100644 raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/log.go (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log') diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/filelogger.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/filelogger.go deleted file mode 100644 index e3ff42b..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/filelogger.go +++ /dev/null @@ -1,114 +0,0 @@ -package log - -import ( - "bufio" - "fmt" - "os" - "path/filepath" - "regexp" - "sync" - "time" -) - -type FileLogger struct { - file *os.File - writer *bufio.Writer - logPath string - mu sync.Mutex - stopChan chan struct{} - doneChan chan struct{} - passwordRe *regexp.Regexp -} - -func NewFileLogger() (*FileLogger, error) { - timestamp := time.Now().Unix() - - // Use DANKINSTALL_LOG_DIR if set, otherwise fall back to /tmp. - logDir := os.Getenv("DANKINSTALL_LOG_DIR") - if logDir == "" { - logDir = "/tmp" - } - if err := os.MkdirAll(logDir, 0o755); err != nil { - return nil, fmt.Errorf("failed to create log directory: %w", err) - } - logPath := filepath.Join(logDir, fmt.Sprintf("dankinstall-%d.log", timestamp)) - - file, err := os.Create(logPath) - if err != nil { - return nil, fmt.Errorf("failed to create log file: %w", err) - } - - passwordRe := regexp.MustCompile(`(?i)(password[:\s=]+)[^\s]+`) - - logger := &FileLogger{ - file: file, - writer: bufio.NewWriter(file), - logPath: logPath, - stopChan: make(chan struct{}), - doneChan: make(chan struct{}), - passwordRe: passwordRe, - } - - header := fmt.Sprintf("=== DankInstall Log ===\nStarted: %s\n\n", time.Now().Format(time.RFC3339)) - logger.writeToFile(header) - - return logger, nil -} - -func (l *FileLogger) GetLogPath() string { - return l.logPath -} - -func (l *FileLogger) redactPassword(message string) string { - redacted := l.passwordRe.ReplaceAllString(message, "${1}[REDACTED]") - - redacted = regexp.MustCompile(`echo\s+'[^']+'`).ReplaceAllString(redacted, "echo '[REDACTED]'") - - return redacted -} - -func (l *FileLogger) writeToFile(message string) { - l.mu.Lock() - defer l.mu.Unlock() - - redacted := l.redactPassword(message) - timestamp := time.Now().Format("15:04:05.000") - - fmt.Fprintf(l.writer, "[%s] %s\n", timestamp, redacted) - l.writer.Flush() -} - -func (l *FileLogger) StartListening(logChan <-chan string) { - go func() { - defer close(l.doneChan) - for { - select { - case msg, ok := <-logChan: - if !ok { - return - } - l.writeToFile(msg) - case <-l.stopChan: - return - } - } - }() -} - -func (l *FileLogger) Close() error { - close(l.stopChan) - <-l.doneChan - - l.mu.Lock() - defer l.mu.Unlock() - - footer := fmt.Sprintf("\n=== DankInstall Log End ===\nCompleted: %s\n", time.Now().Format(time.RFC3339)) - l.writer.WriteString(footer) //nolint:errcheck - l.writer.Flush() - - if err := l.file.Sync(); err != nil { - return err - } - - return l.file.Close() -} 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 deleted file mode 100644 index 6b3ede3..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/log/log.go +++ /dev/null @@ -1,116 +0,0 @@ -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