@@ -24,12 +24,14 @@ import (
24
24
25
25
"github.com/arduino/arduino-cli/arduino/discovery"
26
26
"github.com/arduino/arduino-cli/arduino/discovery/discoverymanager"
27
- ui "github.com/gizak/termui/v3"
28
- "github.com/gizak/termui/v3/widgets"
29
27
"github.com/sirupsen/logrus"
30
28
)
31
29
32
30
func main () {
31
+ if len (os .Args ) < 2 {
32
+ fmt .Println ("Please specify at least one discovery." )
33
+ os .Exit (1 )
34
+ }
33
35
logrus .SetLevel (logrus .ErrorLevel )
34
36
dm := discoverymanager .New ()
35
37
for _ , discCmd := range os .Args [1 :] {
@@ -38,98 +40,23 @@ func main() {
38
40
}
39
41
dm .Start ()
40
42
41
- activePorts := map [string ]* discovery.Port {}
42
43
watcher , err := dm .Watch ()
43
44
if err != nil {
44
45
log .Fatalf ("failed to start discoveries: %v" , err )
45
46
}
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:" )
61
47
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" {
71
54
keys := port .Properties .Keys ()
72
55
sort .Strings (keys )
73
56
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 ))
75
58
}
76
59
}
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 ()
134
61
}
135
62
}
0 commit comments