forked from cloudfoundry/cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ui_for_app.go
61 lines (50 loc) · 1.64 KB
/
ui_for_app.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package ui
import (
"strings"
"github.com/fatih/color"
)
func (ui *UI) DisplayInstancesTableForApp(table [][]string) {
redColor := color.New(color.FgRed, color.Bold)
trDown, trCrashed := ui.TranslateText("down"), ui.TranslateText("crashed")
for i, row := range table {
if row[1] == trDown || row[1] == trCrashed {
table[i][1] = ui.modifyColor(row[1], redColor)
}
}
ui.DisplayTableWithHeader("", table, DefaultTableSpacePadding)
}
func (ui *UI) DisplayKeyValueTableForApp(table [][]string) {
runningInstances := strings.Split(table[2][1], "/")[0]
state := table[1][1]
if runningInstances == "0" && state != ui.TranslateText("stopped") {
redColor := color.New(color.FgRed, color.Bold)
table[1][1] = ui.modifyColor(table[1][1], redColor)
table[2][1] = ui.modifyColor(table[2][1], redColor)
}
ui.DisplayKeyValueTable("", table, 3)
}
func (ui *UI) DisplayKeyValueTableForV3App(table [][]string, crashedProcesses []string) {
if len(crashedProcesses) > 0 {
redColor := color.New(color.FgRed, color.Bold)
table[1][1] = ui.modifyColor(table[1][1], redColor)
processes := strings.Split(table[2][1], ",")
newProcesses := []string{}
for _, process := range processes {
parts := strings.Split(process, ":")
isCrashedProcess := false
for _, crashedProcess := range crashedProcesses {
if parts[0] == crashedProcess {
isCrashedProcess = true
break
}
}
if isCrashedProcess {
newProcesses = append(newProcesses, ui.modifyColor(process, redColor))
} else {
newProcesses = append(newProcesses, process)
}
}
table[2][1] = strings.Join(newProcesses, ",")
}
ui.DisplayKeyValueTable("", table, 3)
}