mirror of
https://github.com/bcicen/ctop.git
synced 2024-08-30 18:23:19 +00:00
626d50d3e9
Change color status logic. Highlight health status for Name column: - starting - yellow - healthy - green - unhealthy - magenta reformat Fixed misprint Removed unused colors of state widget. Moved changes to another branch Removed unused colors of state widget. Remove swarm changes from master Remove swarm changes from master Remove swarm changes from master
59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package single
|
|
|
|
import (
|
|
"strings"
|
|
|
|
ui "github.com/gizak/termui"
|
|
)
|
|
|
|
var displayInfo = []string{"id", "name", "image", "ports", "state", "created", "health"}
|
|
|
|
type Info struct {
|
|
*ui.Table
|
|
data map[string]string
|
|
}
|
|
|
|
func NewInfo(id string) *Info {
|
|
p := ui.NewTable()
|
|
p.Height = 4
|
|
p.Width = colWidth[0]
|
|
p.FgColor = ui.ThemeAttr("par.text.fg")
|
|
p.Separator = false
|
|
i := &Info{p, make(map[string]string)}
|
|
i.Set("id", id)
|
|
return i
|
|
}
|
|
|
|
func (w *Info) Set(k, v string) {
|
|
w.data[k] = v
|
|
|
|
// rebuild rows
|
|
w.Rows = [][]string{}
|
|
for _, k := range displayInfo {
|
|
if v, ok := w.data[k]; ok {
|
|
w.Rows = append(w.Rows, mkInfoRows(k, v)...)
|
|
}
|
|
}
|
|
|
|
w.Height = len(w.Rows) + 2
|
|
}
|
|
|
|
// Build row(s) from a key and value string
|
|
func mkInfoRows(k, v string) (rows [][]string) {
|
|
lines := strings.Split(v, "\n")
|
|
|
|
// initial row with field name
|
|
rows = append(rows, []string{k, lines[0]})
|
|
|
|
// append any additional lines in seperate row
|
|
if len(lines) > 1 {
|
|
for _, line := range lines[1:] {
|
|
if line != "" {
|
|
rows = append(rows, []string{"", line})
|
|
}
|
|
}
|
|
}
|
|
|
|
return rows
|
|
}
|