From 6b5a2cf70697c1f1083d64b4cb48aebb84fa67b4 Mon Sep 17 00:00:00 2001 From: Jon Drews Date: Sun, 26 Mar 2023 21:47:42 -0400 Subject: [PATCH] rework fswatcher channel read to be more efficient --- main.go | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index c51b535..b344034 100644 --- a/main.go +++ b/main.go @@ -190,20 +190,15 @@ func follow(logFilePath string, pubSub *pubsub.PubSub, patterns []CompiledRegexC parsedGlob, err := glob.Parse(logFilePath) if err != nil { panic(fmt.Sprintf("%q: failed to parse glob: %q", parsedGlob, err)) - } tailer, err := fswatcher.RunFileTailer([]glob.Glob{parsedGlob}, false, true, logger) - for { - select { - case line := <-tailer.Lines(): - logger.Debug(line.Line) - logMessage := colorize(line.Line, logFilePath, patterns) - pubSub.Pub(logMessage, "lines") - default: - continue - } + for line := range tailer.Lines() { + logger.Debug(line.Line) + logMessage := colorize(line.Line, logFilePath, patterns) + pubSub.Pub(logMessage, "lines") } + } // Run each line through the regex patterns to determine if the line should be colored.