Skip to content

Commit c31cd98

Browse files
committed
Refactored discovery client and removed now useless go.mod files
1 parent 43974bb commit c31cd98

File tree

3 files changed

+12
-264
lines changed

3 files changed

+12
-264
lines changed

arduino/discovery/discovery_client/go.mod

-30
This file was deleted.

arduino/discovery/discovery_client/go.sum

-149
This file was deleted.

arduino/discovery/discovery_client/main.go

+12-85
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@ import (
2424

2525
"github.com/arduino/arduino-cli/arduino/discovery"
2626
"github.com/arduino/arduino-cli/arduino/discovery/discoverymanager"
27-
ui "github.com/gizak/termui/v3"
28-
"github.com/gizak/termui/v3/widgets"
2927
"github.com/sirupsen/logrus"
3028
)
3129

3230
func main() {
31+
if len(os.Args) < 2 {
32+
fmt.Println("Please specify at least one discovery.")
33+
os.Exit(1)
34+
}
3335
logrus.SetLevel(logrus.ErrorLevel)
3436
dm := discoverymanager.New()
3537
for _, discCmd := range os.Args[1:] {
@@ -38,98 +40,23 @@ func main() {
3840
}
3941
dm.Start()
4042

41-
activePorts := map[string]*discovery.Port{}
4243
watcher, err := dm.Watch()
4344
if err != nil {
4445
log.Fatalf("failed to start discoveries: %v", err)
4546
}
46-
if err := ui.Init(); err != nil {
47-
log.Fatalf("failed to initialize termui: %v", err)
48-
}
49-
defer ui.Close()
50-
51-
l := widgets.NewList()
52-
l.Title = "List"
53-
l.TextStyle = ui.NewStyle(ui.ColorYellow)
54-
l.WrapText = false
55-
w, h := ui.TerminalDimensions()
56-
l.SetRect(0, 0, w, h)
57-
58-
updateList := func() {
59-
rows := []string{}
60-
rows = append(rows, "Available ports list:")
6147

62-
ids := sort.StringSlice{}
63-
for id := range activePorts {
64-
ids = append(ids, id)
65-
}
66-
ids.Sort()
67-
for _, id := range ids {
68-
port := activePorts[id]
69-
rows = append(rows, fmt.Sprintf("> Address: %s", port.AddressLabel))
70-
rows = append(rows, fmt.Sprintf(" Protocol: %s", port.ProtocolLabel))
48+
for ev := range watcher.Feed() {
49+
port := ev.Port
50+
fmt.Printf("> Port %s\n", ev.Type)
51+
fmt.Printf(" Address: %s\n", port.Address)
52+
fmt.Printf(" Protocol: %s\n", port.Protocol)
53+
if ev.Type == "add" {
7154
keys := port.Properties.Keys()
7255
sort.Strings(keys)
7356
for _, k := range keys {
74-
rows = append(rows, fmt.Sprintf(" %s=%s", k, port.Properties.Get(k)))
57+
fmt.Printf(" %s=%s\n", k, port.Properties.Get(k))
7558
}
7659
}
77-
l.Rows = rows
78-
}
79-
updateList()
80-
ui.Render(l)
81-
82-
previousKey := ""
83-
uiEvents := ui.PollEvents()
84-
out:
85-
for {
86-
select {
87-
case e := <-uiEvents:
88-
switch e.ID {
89-
case "<Resize>":
90-
payload := e.Payload.(ui.Resize)
91-
l.SetRect(0, 0, payload.Width, payload.Height)
92-
ui.Clear()
93-
case "q", "<C-c>":
94-
break out
95-
case "j", "<Down>":
96-
l.ScrollDown()
97-
case "k", "<Up>":
98-
l.ScrollUp()
99-
case "<C-d>":
100-
l.ScrollHalfPageDown()
101-
case "<C-u>":
102-
l.ScrollHalfPageUp()
103-
case "<C-f>":
104-
l.ScrollPageDown()
105-
case "<C-b>":
106-
l.ScrollPageUp()
107-
case "g":
108-
if previousKey == "g" {
109-
l.ScrollTop()
110-
}
111-
case "<Home>":
112-
l.ScrollTop()
113-
case "G", "<End>":
114-
l.ScrollBottom()
115-
}
116-
117-
if previousKey == "g" {
118-
previousKey = ""
119-
} else {
120-
previousKey = e.ID
121-
}
122-
123-
case ev := <-watcher.Feed():
124-
if ev.Type == "add" {
125-
activePorts[ev.Port.Address+"|"+ev.Port.Protocol] = ev.Port
126-
}
127-
if ev.Type == "remove" {
128-
delete(activePorts, ev.Port.Address+"|"+ev.Port.Protocol)
129-
}
130-
updateList()
131-
}
132-
133-
ui.Render(l)
60+
fmt.Println()
13461
}
13562
}

0 commit comments

Comments
 (0)