@@ -5,24 +5,24 @@ import (
5
5
"strings"
6
6
"sync"
7
7
"unicode/utf8"
8
-
9
- "github.com/fatih/color"
10
8
)
11
9
12
10
const (
13
- numOtherRune = 16
14
- numRuneForGreenColor = 9
15
- numRuneForNewLine = 1
16
- numRuneForArrow = 8 - numRuneForNewLine
17
- recordArrow = " ─────> "
11
+ widthDashboard = 3
12
+ numOtherRune = 5
13
+ numRuneForNewLine = 1
14
+ numRuneForArrow = 8 - numRuneForNewLine
15
+ recordArrow = " ─────> "
16
+ charSelectedService = "[*]"
17
+ charNoSelectedService = "[ ]"
18
18
)
19
19
20
20
var (
21
21
once sync.Once
22
22
serviceNumbers = make (map [string ]int )
23
23
selectedServices = make (map [string ]struct {})
24
24
services = make ([]string , 0 )
25
- maxKeyLen int
25
+ maxLenServiceName int
26
26
dashboardTopLine string
27
27
dashboardDownLine string
28
28
runeCountInDashboardTopLine int
@@ -33,19 +33,19 @@ func generateDashboard(dc DockerCompose, serviceSelected bool, serviceNumber int
33
33
34
34
once .Do (func () {
35
35
var counter int
36
- for key := range dc .Services {
36
+ for service := range dc .Services {
37
37
counter ++
38
- serviceNumbers [key ] = counter
39
- services = append (services , key )
38
+ serviceNumbers [service ] = counter
39
+ services = append (services , service )
40
40
41
- lenKey := utf8 .RuneCountInString (key )
42
- if lenKey > maxKeyLen {
43
- maxKeyLen = lenKey
41
+ lenServiceName := utf8 .RuneCountInString (service )
42
+ if lenServiceName > maxLenServiceName {
43
+ maxLenServiceName = lenServiceName
44
44
}
45
45
}
46
46
47
47
dashboardTopLine = "┌"
48
- dashboardTopLine += strings .Repeat ("─" , maxKeyLen + digitsCount (len (services ))+ numOtherRune )
48
+ dashboardTopLine += strings .Repeat ("─" , maxLenServiceName + digitsCount (len (services ))+ numOtherRune + widthDashboard )
49
49
dashboardTopLine += "┐"
50
50
51
51
runeCountInDashboardTopLine = utf8 .RuneCountInString (dashboardTopLine )
@@ -58,57 +58,49 @@ func generateDashboard(dc DockerCompose, serviceSelected bool, serviceNumber int
58
58
59
59
for _ , service := range services {
60
60
var (
61
- record string
62
- recordHasArrow bool
63
- recordHasCheckmark bool
61
+ record string
62
+ recordHasArrow bool
64
63
)
65
64
66
65
if _ , ok := selectedServices [service ]; ! ok {
67
66
if serviceNumber > 0 {
68
67
if serviceNumbers [service ] == serviceNumber {
69
68
if serviceSelected {
70
- record = fmt .Sprintf ("%s│ %d. %s%s " , recordArrow , serviceNumbers [ service ] , service , color . GreenString ( charSelectedService ) )
69
+ record = fmt .Sprintf ("%s│ %s %s" , recordArrow , charSelectedService , service )
71
70
selectedServices [service ] = struct {}{}
72
- recordHasCheckmark = true
73
71
recordHasArrow = true
74
72
} else {
75
- record = fmt .Sprintf ("%s│ %d. %s" , recordArrow , serviceNumbers [ service ] , service )
73
+ record = fmt .Sprintf ("%s│ %s %s" , recordArrow , charNoSelectedService , service )
76
74
recordHasArrow = true
77
75
}
78
76
} else {
79
- record = fmt .Sprintf ("\t │ %d. %s" , serviceNumbers [ service ] , service )
77
+ record = fmt .Sprintf ("\t │ %s %s" , charNoSelectedService , service )
80
78
}
81
79
} else {
82
- record = fmt .Sprintf ("\t │ %d. %s" , serviceNumbers [ service ] , service )
80
+ record = fmt .Sprintf ("\t │ %s %s" , charNoSelectedService , service )
83
81
}
84
82
} else {
85
83
if serviceNumber > 0 {
86
84
if serviceNumbers [service ] == serviceNumber {
87
85
if serviceSelected {
88
- record = fmt .Sprintf ("%s│ %d. %s" , recordArrow , serviceNumbers [ service ] , service )
86
+ record = fmt .Sprintf ("%s│ %s %s" , recordArrow , charNoSelectedService , service )
89
87
delete (selectedServices , service )
90
88
recordHasArrow = true
91
89
} else {
92
- record = fmt .Sprintf ("%s│ %d. %s%s" , recordArrow , serviceNumbers [service ], service , color .GreenString (charSelectedService ))
93
- recordHasCheckmark = true
90
+ record = fmt .Sprintf ("%s│ %s %s" , recordArrow , charSelectedService , service )
94
91
recordHasArrow = true
95
92
}
96
93
} else {
97
- record = fmt .Sprintf ("\t │ %d. %s%s" , serviceNumbers [service ], service , color .GreenString (charSelectedService ))
98
- recordHasCheckmark = true
94
+ record = fmt .Sprintf ("\t │ %s %s" , charSelectedService , service )
99
95
}
100
96
} else {
101
- record = fmt .Sprintf ("\t │ %d. %s%s" , serviceNumbers [service ], service , color .GreenString (charSelectedService ))
102
- recordHasCheckmark = true
97
+ record = fmt .Sprintf ("\t │ %s %s" , charSelectedService , service )
103
98
}
104
99
}
105
100
106
101
runeCountInRecord := utf8 .RuneCountInString (record )
107
102
numRepeatedEmptyChars := runeCountInDashboardTopLine - runeCountInRecord
108
103
109
- if recordHasCheckmark {
110
- numRepeatedEmptyChars += numRuneForGreenColor
111
- }
112
104
if recordHasArrow {
113
105
numRepeatedEmptyChars += numRuneForArrow
114
106
}
0 commit comments