Skip to content

Commit ed81fc5

Browse files
committed
Add external programmers listing to board details commmand
1 parent 3c16c05 commit ed81fc5

20 files changed

+416
-290
lines changed

cli/board/details.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
var tr = i18n.Tr
3535
var showFullDetails bool
3636
var fqbn string
37+
var listProgrammers bool
3738

3839
func initDetailsCommand() *cobra.Command {
3940
var detailsCommand = &cobra.Command{
@@ -47,6 +48,7 @@ func initDetailsCommand() *cobra.Command {
4748

4849
detailsCommand.Flags().BoolVarP(&showFullDetails, "full", "f", false, tr("Show full board details"))
4950
detailsCommand.Flags().StringVarP(&fqbn, "fqbn", "b", "", "Fully Qualified Board Name, e.g.: arduino:avr:uno")
51+
detailsCommand.Flags().BoolVarP(&listProgrammers, "list-programmers", "", false, tr("Show list of available programmers"))
5052
// detailsCommand.MarkFlagRequired("fqbn") // enable once `board details <fqbn>` is removed
5153

5254
return detailsCommand
@@ -89,6 +91,16 @@ func (dr detailsResult) Data() interface{} {
8991

9092
func (dr detailsResult) String() string {
9193
details := dr.details
94+
95+
if listProgrammers {
96+
t := table.New()
97+
t.AddRow(tr("Id"), tr("Programmer name"))
98+
for _, programmer := range details.Programmers {
99+
t.AddRow(programmer.GetId(), programmer.GetName())
100+
}
101+
return t.Render()
102+
}
103+
92104
// Table is 4 columns wide:
93105
// | | | | |
94106
// Board name: Arduino Nano
@@ -180,5 +192,10 @@ func (dr detailsResult) String() string {
180192
}
181193
}
182194

195+
t.AddRow(tr("Programmers:"), tr("Id"), tr("Name"))
196+
for _, programmer := range details.Programmers {
197+
t.AddRow("", programmer.GetId(), programmer.GetName())
198+
}
199+
183200
return t.Render()
184201
}

commands/board/details.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,5 +129,14 @@ func Details(ctx context.Context, req *rpc.BoardDetailsReq) (*rpc.BoardDetailsRe
129129
})
130130
}
131131

132+
details.Programmers = []*rpc.Programmer{}
133+
for id, p := range boardPlatform.Programmers {
134+
details.Programmers = append(details.Programmers, &rpc.Programmer{
135+
Platform: boardPlatform.Platform.Name,
136+
Id: id,
137+
Name: p.Name,
138+
})
139+
}
140+
132141
return details, nil
133142
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ require (
2020
github.com/fluxio/iohelpers v0.0.0-20160419043813-3a4dd67a94d2 // indirect
2121
github.com/fluxio/multierror v0.0.0-20160419044231-9c68d39025e5 // indirect
2222
github.com/gofrs/uuid v3.2.0+incompatible
23-
github.com/golang/protobuf v1.4.1
23+
github.com/golang/protobuf v1.4.2
2424
github.com/h2non/filetype v1.0.8 // indirect
2525
github.com/imjasonmiller/godice v0.1.2
2626
github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8 // indirect

go.sum

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,17 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb
7878
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
7979
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
8080
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
81+
github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I=
82+
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
8183
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
8284
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
8385
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
8486
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
8587
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
8688
github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0=
8789
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
90+
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
91+
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
8892
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
8993
github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ=
9094
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
@@ -307,6 +311,8 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl
307311
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
308312
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
309313
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
314+
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90 h1:7THRSvPuzF1bql5kyFzX0JM0vpGhwuhskgJrJsbZ80Y=
315+
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
310316
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
311317
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
312318
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
@@ -320,6 +326,7 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ
320326
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
321327
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
322328
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
329+
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
323330
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
324331
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
325332
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=

i18n/data/en.po

Lines changed: 46 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,28 @@ msgstr "Aliases:"
1313
msgid "Available Commands:"
1414
msgstr "Available Commands:"
1515

16-
#: cli/board/details.go:112
16+
#: cli/board/details.go:123
1717
msgid "Board name:"
1818
msgstr "Board name:"
1919

20-
#: cli/board/details.go:114
20+
#: cli/board/details.go:125
2121
msgid "Board version:"
2222
msgstr "Board version:"
2323

24-
#: cli/board/details.go:157
24+
#: cli/board/details.go:168
2525
msgid "Checksum:"
2626
msgstr "Checksum:"
2727

28-
#: cli/board/details.go:58
29-
#: cli/board/details.go:73
28+
#: cli/board/details.go:60
29+
#: cli/board/details.go:75
3030
msgid "Error getting board details: %v"
3131
msgstr "Error getting board details: %v"
3232

3333
#: cli/usage.go:27
3434
msgid "Examples:"
3535
msgstr "Examples:"
3636

37-
#: cli/board/details.go:155
37+
#: cli/board/details.go:166
3838
msgid "File:"
3939
msgstr "File:"
4040

@@ -46,87 +46,106 @@ msgstr "Flags:"
4646
msgid "Global Flags:"
4747
msgstr "Global Flags:"
4848

49-
#: cli/board/details.go:125
49+
#: cli/board/details.go:116
50+
#: cli/board/details.go:194
51+
msgid "Id"
52+
msgstr "Id"
53+
54+
#: cli/board/details.go:136
5055
msgid "Identification properties:"
5156
msgstr "Identification properties:"
5257

53-
#: cli/board/details.go:154
58+
#: cli/board/details.go:116
59+
#: cli/board/details.go:194
60+
msgid "Name"
61+
msgstr "Name"
62+
63+
#: cli/board/details.go:165
5464
msgid "OS:"
5565
msgstr "OS:"
5666

57-
#: cli/board/details.go:118
67+
#: cli/board/details.go:129
5868
msgid "Official Arduino board:"
5969
msgstr "Official Arduino board:"
6070

61-
#: cli/board/details.go:166
71+
#: cli/board/details.go:177
6272
msgid "Option:"
6373
msgstr "Option:"
6474

65-
#: cli/board/details.go:134
75+
#: cli/board/details.go:145
6676
msgid "Package URL:"
6777
msgstr "Package URL:"
6878

69-
#: cli/board/details.go:133
79+
#: cli/board/details.go:144
7080
msgid "Package maintainer:"
7181
msgstr "Package maintainer:"
7282

73-
#: cli/board/details.go:132
83+
#: cli/board/details.go:143
7484
msgid "Package name:"
7585
msgstr "Package name:"
7686

77-
#: cli/board/details.go:136
87+
#: cli/board/details.go:147
7888
msgid "Package online help:"
7989
msgstr "Package online help:"
8090

81-
#: cli/board/details.go:135
91+
#: cli/board/details.go:146
8292
msgid "Package website:"
8393
msgstr "Package website:"
8494

85-
#: cli/board/details.go:142
95+
#: cli/board/details.go:153
8696
msgid "Platform URL:"
8797
msgstr "Platform URL:"
8898

89-
#: cli/board/details.go:141
99+
#: cli/board/details.go:152
90100
msgid "Platform architecture:"
91101
msgstr "Platform architecture:"
92102

93-
#: cli/board/details.go:140
103+
#: cli/board/details.go:151
94104
msgid "Platform category:"
95105
msgstr "Platform category:"
96106

97-
#: cli/board/details.go:147
107+
#: cli/board/details.go:158
98108
msgid "Platform checksum:"
99109
msgstr "Platform checksum:"
100110

101-
#: cli/board/details.go:143
111+
#: cli/board/details.go:154
102112
msgid "Platform file name:"
103113
msgstr "Platform file name:"
104114

105-
#: cli/board/details.go:139
115+
#: cli/board/details.go:150
106116
msgid "Platform name:"
107117
msgstr "Platform name:"
108118

109-
#: cli/board/details.go:145
119+
#: cli/board/details.go:156
110120
msgid "Platform size (bytes):"
111121
msgstr "Platform size (bytes):"
112122

113-
#: cli/board/details.go:41
123+
#: cli/board/details.go:42
114124
msgid "Print details about a board."
115125
msgstr "Print details about a board."
116126

117-
#: cli/board/details.go:151
127+
#: cli/board/details.go:116
128+
#: cli/board/details.go:194
129+
msgid "Programmers:"
130+
msgstr "Programmers:"
131+
132+
#: cli/board/details.go:162
118133
msgid "Required tool:"
119134
msgstr "Required tool:"
120135

121-
#: cli/board/details.go:48
136+
#: cli/board/details.go:49
122137
msgid "Show full board details"
123138
msgstr "Show full board details"
124139

125-
#: cli/board/details.go:42
140+
#: cli/board/details.go:43
126141
msgid "Show information about a board, in particular if the board has options to be specified in the FQBN."
127142
msgstr "Show information about a board, in particular if the board has options to be specified in the FQBN."
128143

129-
#: cli/board/details.go:156
144+
#: cli/board/details.go:51
145+
msgid "Show list of available programmers"
146+
msgstr "Show list of available programmers"
147+
148+
#: cli/board/details.go:167
130149
msgid "Size (bytes):"
131150
msgstr "Size (bytes):"
132151

0 commit comments

Comments
 (0)