Files
BrowserOS/packages/browseros-agent/tools/dev/proc/log.go
Dani Akash 290ee91a8b Add 'packages/browseros-agent/' from commit '90bd4be3008285bf3825aad3702aff98f872671a'
git-subtree-dir: packages/browseros-agent
git-subtree-mainline: 8f148d0918
git-subtree-split: 90bd4be300
2026-03-13 21:22:09 +05:30

47 lines
1.1 KiB
Go

package proc
import (
"bufio"
"fmt"
"github.com/fatih/color"
)
type Tag struct {
Name string
Color *color.Color
}
var (
TagBuild = Tag{"build", color.New(color.FgYellow)}
TagAgent = Tag{"agent", color.New(color.FgMagenta)}
TagServer = Tag{"server", color.New(color.FgCyan)}
TagBrowser = Tag{"browser", color.New(color.FgBlue)}
TagInfo = Tag{"info", color.New(color.FgGreen)}
TagTest = Tag{"test", color.New(color.FgWhite)}
ErrorColor = color.New(color.FgRed)
WarnColor = color.New(color.FgYellow)
BoldColor = color.New(color.Bold)
DimColor = color.New(color.Faint)
)
func LogMsg(t Tag, msg string) {
fmt.Printf("%s %s\n", t.Color.Sprintf("[%s]", t.Name), msg)
}
func LogMsgf(t Tag, format string, args ...any) {
LogMsg(t, fmt.Sprintf(format, args...))
}
func StreamLines(r interface{ Read([]byte) (int, error) }, t Tag) {
scanner := bufio.NewScanner(r)
scanner.Buffer(make([]byte, 0, 64*1024), 1024*1024)
for scanner.Scan() {
line := scanner.Text()
if line != "" {
fmt.Printf("%s %s\n", t.Color.Sprintf("[%s]", t.Name), line)
}
}
}