Add pendColor option for Pending pods

mine
Richard Whitehead 2020-05-19 00:15:25 -07:00
parent 99ad32ba98
commit 9f9812b897
7 changed files with 32 additions and 12 deletions

View File

@ -69,6 +69,7 @@ type (
NewColor Color `yaml:"newColor"` NewColor Color `yaml:"newColor"`
ModifyColor Color `yaml:"modifyColor"` ModifyColor Color `yaml:"modifyColor"`
AddColor Color `yaml:"addColor"` AddColor Color `yaml:"addColor"`
PendingColor Color `yaml:"pendingColor"`
ErrorColor Color `yaml:"errorColor"` ErrorColor Color `yaml:"errorColor"`
HighlightColor Color `yaml:"highlightColor"` HighlightColor Color `yaml:"highlightColor"`
KillColor Color `yaml:"killColor"` KillColor Color `yaml:"killColor"`
@ -258,6 +259,7 @@ func newStatus() Status {
NewColor: "lightskyblue", NewColor: "lightskyblue",
ModifyColor: "greenyellow", ModifyColor: "greenyellow",
AddColor: "dodgerblue", AddColor: "dodgerblue",
PendingColor: "orangered",
ErrorColor: "orangered", ErrorColor: "orangered",
HighlightColor: "aqua", HighlightColor: "aqua",
KillColor: "mediumpurple", KillColor: "mediumpurple",

View File

@ -11,6 +11,9 @@ var (
// AddColor row added color. // AddColor row added color.
AddColor tcell.Color AddColor tcell.Color
// PendingColor row added color.
PendingColor tcell.Color
// ErrColor row err color. // ErrColor row err color.
ErrColor tcell.Color ErrColor tcell.Color

View File

@ -37,18 +37,11 @@ type ContainerWithMetrics interface {
// Container renders a K8s Container to screen. // Container renders a K8s Container to screen.
type Container struct{} type Container struct{}
// ColorerFunc colors a resource row. // ColorGet returns a color for a state
func (c Container) ColorerFunc() ColorerFunc { func ColorGet(s string,ns string, h Header, re RowEvent) tcell.Color {
return func(ns string, h Header, re RowEvent) tcell.Color { switch s {
if !Happy(ns, h, re.Row) { case Pending:
return ErrColor return PendingColor
}
stateCol := h.IndexOf("STATE", true)
if stateCol == -1 {
return DefaultColorer(ns, h, re)
}
switch strings.TrimSpace(re.Row.Fields[stateCol]) {
case ContainerCreating, PodInitializing: case ContainerCreating, PodInitializing:
return AddColor return AddColor
case Terminating, Initialized: case Terminating, Initialized:
@ -60,6 +53,21 @@ func (c Container) ColorerFunc() ColorerFunc {
default: default:
return ErrColor return ErrColor
} }
}
// ColorerFunc colors a resource row.
func (c Container) ColorerFunc() ColorerFunc {
return func(ns string, h Header, re RowEvent) tcell.Color {
if !Happy(ns, h, re.Row) {
return ErrColor
}
stateCol := h.IndexOf("STATE", true)
if stateCol == -1 {
return DefaultColorer(ns, h, re)
}
return ColorGet(strings.TrimSpace(re.Row.Fields[stateCol]), ns, h, re)
} }
} }

View File

@ -30,6 +30,8 @@ func (p Pod) ColorerFunc() ColorerFunc {
} }
status := strings.TrimSpace(re.Row.Fields[statusCol]) status := strings.TrimSpace(re.Row.Fields[statusCol])
switch status { switch status {
case Pending:
c = PendingColor
case ContainerCreating, PodInitializing: case ContainerCreating, PodInitializing:
c = AddColor c = AddColor
case Initialized: case Initialized:

View File

@ -23,6 +23,9 @@ const (
// PodInitializing represents a pod initializing status. // PodInitializing represents a pod initializing status.
PodInitializing = "PodInitializing" PodInitializing = "PodInitializing"
// Pending represents a pod pending status.
Pending = "Pending"
) )
const ( const (

View File

@ -156,6 +156,7 @@ func (c *Configurator) updateStyles(f string) {
render.AddColor = c.Styles.Frame().Status.AddColor.Color() render.AddColor = c.Styles.Frame().Status.AddColor.Color()
render.ErrColor = c.Styles.Frame().Status.ErrorColor.Color() render.ErrColor = c.Styles.Frame().Status.ErrorColor.Color()
render.StdColor = c.Styles.Frame().Status.NewColor.Color() render.StdColor = c.Styles.Frame().Status.NewColor.Color()
render.PendingColor = c.Styles.Frame().Status.PendingColor.Color()
render.HighlightColor = c.Styles.Frame().Status.HighlightColor.Color() render.HighlightColor = c.Styles.Frame().Status.HighlightColor.Color()
render.KillColor = c.Styles.Frame().Status.KillColor.Color() render.KillColor = c.Styles.Frame().Status.KillColor.Color()
render.CompletedColor = c.Styles.Frame().Status.CompletedColor.Color() render.CompletedColor = c.Styles.Frame().Status.CompletedColor.Color()

View File

@ -23,6 +23,7 @@ k9s:
modifyColor: greenyellow modifyColor: greenyellow
addColor: white addColor: white
errorColor: orangered errorColor: orangered
pendingColor: orangered
highlightcolor: aqua highlightcolor: aqua
killColor: mediumpurple killColor: mediumpurple
completedColor: gray completedColor: gray