repeater/internal/syslog/parser.go

32 lines
879 B
Go

package syslog
import (
"strings"
)
// ParseSyslogLine extracts the message content from a syslog line.
// It looks for the daemon prefix in the line and returns the message after it.
//
// Example input: "Dec 2 02:01:33 tyet daemon.info iwd: Error loading /var/lib/iwd//nemuphone.psk"
// Example output: "Error loading /var/lib/iwd//nemuphone.psk", true
//
// Returns the message and a boolean indicating if the line was successfully parsed.
func ParseSyslogLine(line, daemonPrefix string) (string, bool) {
// Find the daemon prefix in the line (e.g., "iwd:")
idx := strings.Index(line, daemonPrefix)
if idx == -1 {
return "", false
}
// Extract everything after the daemon prefix
message := line[idx+len(daemonPrefix):]
// Trim leading/trailing whitespace
message = strings.TrimSpace(message)
if message == "" {
return "", false
}
return message, true
}