10
"github.com/cilium/tetragon/api/v1/tetragon"
11
"github.com/fatih/color"
24
func NewColorer(when ColorMode) *Colorer {
25
red := color.New(color.FgRed)
26
green := color.New(color.FgGreen)
27
blue := color.New(color.FgBlue)
28
cyan := color.New(color.FgCyan)
29
magenta := color.New(color.FgMagenta)
30
yellow := color.New(color.FgYellow)
41
c.Colors = []*color.Color{
43
cyan, magenta, yellow,
56
func (c *Colorer) auto() {
57
for _, v := range c.Colors {
66
func (c *Colorer) enable() {
67
for _, v := range c.Colors {
72
func (c *Colorer) disable() {
73
for _, v := range c.Colors {
78
func printCap(c int) bool {
80
case int(tetragon.CapabilitiesType_CAP_SYS_ADMIN):
86
func processCaps(c *tetragon.Capabilities) string {
93
for e := range c.Effective {
95
caps = append(caps, tetragon.CapabilitiesType_name[int32(e)])
99
capsString := strings.Join(caps, ",")
101
capsString = "🛑 " + capsString
106
func (c *Colorer) ProcessInfo(host string, process *tetragon.Process) (string, string) {
107
source := c.Green.Sprint(host)
108
if process.Pod != nil {
109
source = c.Green.Sprint(process.Pod.Namespace, "/", process.Pod.Name)
111
proc := c.Magenta.Sprint(process.Binary)
112
caps := c.Magenta.Sprint(processCaps(process.Cap))
113
return fmt.Sprintf("%s %s", source, proc), caps