Print failed commands in red.

Optimized for dark terminals :-).

Closes: #8
This commit is contained in:
Albert S. 2021-09-25 12:14:07 +02:00
parent 0949ee422a
commit ebcdfa5ff4
1 changed files with 19 additions and 1 deletions

20
main.go
View File

@ -398,13 +398,31 @@ func main() {
results := search(conn, opts)
previousCmd := ""
fi, err := os.Stdout.Stat()
if err != nil {
panic(err)
}
//Don't print colors if output is piped
printColors := true
if (fi.Mode() & os.ModeCharDevice) == 0 {
printColors = false
}
for e := results.Front(); e != nil; e = e.Next() {
entry, ok := e.Value.(*HistoryEntry)
if !ok {
log.Panic("Failed to retrieve entries")
}
if !distinct || previousCmd != entry.cmd {
fmt.Printf("%s\n", entry.cmd)
prefix := ""
postfix := ""
if printColors && entry.retval != 0 {
prefix = "\033[38;5;88m"
postfix = "\033[0m"
}
fmt.Printf("%s%s%s\n", prefix, entry.cmd, postfix)
}
previousCmd = entry.cmd
}