50 lines
916 B
Go
50 lines
916 B
Go
package tui
|
|
|
|
import (
|
|
"regexp"
|
|
"github.com/karol-broda/snitch/internal/collector"
|
|
"strings"
|
|
)
|
|
|
|
func truncate(s string, max int) string {
|
|
if len(s) <= max {
|
|
return s
|
|
}
|
|
if max <= 2 {
|
|
return s[:max]
|
|
}
|
|
return s[:max-1] + SymbolEllipsis
|
|
}
|
|
|
|
var ansiRegex = regexp.MustCompile(`\x1b\[[0-9;]*m`)
|
|
|
|
func stripAnsi(s string) string {
|
|
return ansiRegex.ReplaceAllString(s, "")
|
|
}
|
|
|
|
func containsIgnoreCase(s, substr string) bool {
|
|
return strings.Contains(strings.ToLower(s), strings.ToLower(substr))
|
|
}
|
|
|
|
func sortFieldLabel(f collector.SortField) string {
|
|
switch f {
|
|
case collector.SortByLport:
|
|
return "port"
|
|
case collector.SortByProcess:
|
|
return "proc"
|
|
case collector.SortByPID:
|
|
return "pid"
|
|
case collector.SortByState:
|
|
return "state"
|
|
case collector.SortByProto:
|
|
return "proto"
|
|
case collector.SortByRaddr:
|
|
return "raddr"
|
|
case collector.SortByRport:
|
|
return "rport"
|
|
default:
|
|
return "port"
|
|
}
|
|
}
|
|
|