@@ -5,24 +5,24 @@ import (
55 "strings"
66 "sync"
77 "unicode/utf8"
8-
9- "github.com/fatih/color"
108)
119
1210const (
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 = "[ ]"
1818)
1919
2020var (
2121 once sync.Once
2222 serviceNumbers = make (map [string ]int )
2323 selectedServices = make (map [string ]struct {})
2424 services = make ([]string , 0 )
25- maxKeyLen int
25+ maxLenServiceName int
2626 dashboardTopLine string
2727 dashboardDownLine string
2828 runeCountInDashboardTopLine int
@@ -33,19 +33,19 @@ func generateDashboard(dc DockerCompose, serviceSelected bool, serviceNumber int
3333
3434 once .Do (func () {
3535 var counter int
36- for key := range dc .Services {
36+ for service := range dc .Services {
3737 counter ++
38- serviceNumbers [key ] = counter
39- services = append (services , key )
38+ serviceNumbers [service ] = counter
39+ services = append (services , service )
4040
41- lenKey := utf8 .RuneCountInString (key )
42- if lenKey > maxKeyLen {
43- maxKeyLen = lenKey
41+ lenServiceName := utf8 .RuneCountInString (service )
42+ if lenServiceName > maxLenServiceName {
43+ maxLenServiceName = lenServiceName
4444 }
4545 }
4646
4747 dashboardTopLine = "┌"
48- dashboardTopLine += strings .Repeat ("─" , maxKeyLen + digitsCount (len (services ))+ numOtherRune )
48+ dashboardTopLine += strings .Repeat ("─" , maxLenServiceName + digitsCount (len (services ))+ numOtherRune + widthDashboard )
4949 dashboardTopLine += "┐"
5050
5151 runeCountInDashboardTopLine = utf8 .RuneCountInString (dashboardTopLine )
@@ -58,57 +58,49 @@ func generateDashboard(dc DockerCompose, serviceSelected bool, serviceNumber int
5858
5959 for _ , service := range services {
6060 var (
61- record string
62- recordHasArrow bool
63- recordHasCheckmark bool
61+ record string
62+ recordHasArrow bool
6463 )
6564
6665 if _ , ok := selectedServices [service ]; ! ok {
6766 if serviceNumber > 0 {
6867 if serviceNumbers [service ] == serviceNumber {
6968 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 )
7170 selectedServices [service ] = struct {}{}
72- recordHasCheckmark = true
7371 recordHasArrow = true
7472 } else {
75- record = fmt .Sprintf ("%s│ %d. %s" , recordArrow , serviceNumbers [ service ] , service )
73+ record = fmt .Sprintf ("%s│ %s %s" , recordArrow , charNoSelectedService , service )
7674 recordHasArrow = true
7775 }
7876 } else {
79- record = fmt .Sprintf ("\t │ %d. %s" , serviceNumbers [ service ] , service )
77+ record = fmt .Sprintf ("\t │ %s %s" , charNoSelectedService , service )
8078 }
8179 } else {
82- record = fmt .Sprintf ("\t │ %d. %s" , serviceNumbers [ service ] , service )
80+ record = fmt .Sprintf ("\t │ %s %s" , charNoSelectedService , service )
8381 }
8482 } else {
8583 if serviceNumber > 0 {
8684 if serviceNumbers [service ] == serviceNumber {
8785 if serviceSelected {
88- record = fmt .Sprintf ("%s│ %d. %s" , recordArrow , serviceNumbers [ service ] , service )
86+ record = fmt .Sprintf ("%s│ %s %s" , recordArrow , charNoSelectedService , service )
8987 delete (selectedServices , service )
9088 recordHasArrow = true
9189 } 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 )
9491 recordHasArrow = true
9592 }
9693 } 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 )
9995 }
10096 } 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 )
10398 }
10499 }
105100
106101 runeCountInRecord := utf8 .RuneCountInString (record )
107102 numRepeatedEmptyChars := runeCountInDashboardTopLine - runeCountInRecord
108103
109- if recordHasCheckmark {
110- numRepeatedEmptyChars += numRuneForGreenColor
111- }
112104 if recordHasArrow {
113105 numRepeatedEmptyChars += numRuneForArrow
114106 }
0 commit comments