Skip to content

Commit b873f64

Browse files
author
Lapp
committed
internal/app: change the symbols of the unselected and selected service
1 parent db780f8 commit b873f64

File tree

8 files changed

+31
-41
lines changed

8 files changed

+31
-41
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Docsel
2-
[![Go](https://img.shields.io/badge/go-1.17-blue)](https://golang.org/doc/go1.17) [![Release](https://img.shields.io/badge/release-1.0.0-success)](https://github.com/Lapp-coder/docsel/releases)
2+
[![Go](https://img.shields.io/badge/go-1.17-blue)](https://golang.org/doc/go1.17) [![Release](https://img.shields.io/badge/release-1.1.0-success)](https://github.com/Lapp-coder/docsel/releases)
33

44
Docsel is a utility that allows you to run the services you choose based on the docker-compose file.
55

66
## Example
7-
![docsel example](https://github.com/Lapp-coder/docsel/blob/resourses/docsel-example.gif)
7+
![docsel example](https://github.com/Lapp-coder/docsel/blob/resourses/docsel-example_v110.gif)
88

99
## Installation
1010
1. Clone the repository

build/bin/docsel-darwin_amd64

-13.1 KB
Binary file not shown.

build/bin/docsel-darwin_arm64

-50.2 KB
Binary file not shown.

build/bin/docsel-linux_amd64

-15.3 KB
Binary file not shown.

build/bin/docsel-windows_amd64.exe

-77 KB
Binary file not shown.

internal/app/dashboard.go

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,24 @@ import (
55
"strings"
66
"sync"
77
"unicode/utf8"
8-
9-
"github.com/fatih/color"
108
)
119

1210
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 = "[ ]"
1818
)
1919

2020
var (
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
}

internal/app/shell_unix.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ import (
1010
)
1111

1212
const (
13-
clearCommand = "clear"
14-
charSelectedService = " ✓ "
13+
clearCommand = "clear"
1514
)
1615

1716
func cleanConsole() {

internal/app/shell_windows.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,9 @@ import (
1010
)
1111

1212
const (
13-
powerShell = "powershell"
14-
cmdShell = "cmd"
15-
clearCommand = "cls"
16-
charSelectedService = " + "
13+
powerShell = "powershell"
14+
cmdShell = "cmd"
15+
clearCommand = "cls"
1716
)
1817

1918
func cleanConsole() {

0 commit comments

Comments
 (0)