Skip to content

Commit 5ee35c7

Browse files
authored
Add external programmers listing to board details commmand (#927)
* Add external programmers listing to board details commmand * Remove hack to return list of programmers calling upload command
1 parent 21d2533 commit 5ee35c7

File tree

13 files changed

+404
-294
lines changed

13 files changed

+404
-294
lines changed

Diff for: cli/board/details.go

+17
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
}

Diff for: cli/upload/upload.go

-15
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,6 @@ func run(command *cobra.Command, args []string) {
6868
os.Exit(errorcodes.ErrGeneric)
6969
}
7070

71-
if programmer == "list" {
72-
resp, err := upload.ListProgrammersAvailableForUpload(context.Background(), &rpc.ListProgrammersAvailableForUploadReq{
73-
Instance: instance,
74-
Fqbn: fqbn,
75-
})
76-
if err != nil {
77-
feedback.Errorf("Error listing programmers: %v", err)
78-
os.Exit(errorcodes.ErrGeneric)
79-
}
80-
feedback.PrintResult(&programmersList{
81-
Programmers: resp.GetProgrammers(),
82-
})
83-
os.Exit(0)
84-
}
85-
8671
var path *paths.Path
8772
if len(args) > 0 {
8873
path = paths.New(args[0])

Diff for: commands/board/details.go

+9
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
}

Diff for: go.sum

+4
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ 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=
@@ -309,6 +311,8 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl
309311
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
310312
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
311313
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=
312316
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
313317
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
314318
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=

Diff for: i18n/data/en.po

+48-27
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:124
1717
msgid "Board name:"
1818
msgstr "Board name:"
1919

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

24-
#: cli/board/details.go:157
24+
#: cli/board/details.go:169
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:167
3838
msgid "File:"
3939
msgstr "File:"
4040

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

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

53-
#: cli/board/details.go:154
58+
#: cli/board/details.go:195
59+
msgid "Name"
60+
msgstr "Name"
61+
62+
#: cli/board/details.go:166
5463
msgid "OS:"
5564
msgstr "OS:"
5665

57-
#: cli/board/details.go:118
66+
#: cli/board/details.go:130
5867
msgid "Official Arduino board:"
5968
msgstr "Official Arduino board:"
6069

61-
#: cli/board/details.go:166
70+
#: cli/board/details.go:178
6271
msgid "Option:"
6372
msgstr "Option:"
6473

65-
#: cli/board/details.go:134
74+
#: cli/board/details.go:146
6675
msgid "Package URL:"
6776
msgstr "Package URL:"
6877

69-
#: cli/board/details.go:133
78+
#: cli/board/details.go:145
7079
msgid "Package maintainer:"
7180
msgstr "Package maintainer:"
7281

73-
#: cli/board/details.go:132
82+
#: cli/board/details.go:144
7483
msgid "Package name:"
7584
msgstr "Package name:"
7685

77-
#: cli/board/details.go:136
86+
#: cli/board/details.go:148
7887
msgid "Package online help:"
7988
msgstr "Package online help:"
8089

81-
#: cli/board/details.go:135
90+
#: cli/board/details.go:147
8291
msgid "Package website:"
8392
msgstr "Package website:"
8493

85-
#: cli/board/details.go:142
94+
#: cli/board/details.go:154
8695
msgid "Platform URL:"
8796
msgstr "Platform URL:"
8897

89-
#: cli/board/details.go:141
98+
#: cli/board/details.go:153
9099
msgid "Platform architecture:"
91100
msgstr "Platform architecture:"
92101

93-
#: cli/board/details.go:140
102+
#: cli/board/details.go:152
94103
msgid "Platform category:"
95104
msgstr "Platform category:"
96105

97-
#: cli/board/details.go:147
106+
#: cli/board/details.go:159
98107
msgid "Platform checksum:"
99108
msgstr "Platform checksum:"
100109

101-
#: cli/board/details.go:143
110+
#: cli/board/details.go:155
102111
msgid "Platform file name:"
103112
msgstr "Platform file name:"
104113

105-
#: cli/board/details.go:139
114+
#: cli/board/details.go:151
106115
msgid "Platform name:"
107116
msgstr "Platform name:"
108117

109-
#: cli/board/details.go:145
118+
#: cli/board/details.go:157
110119
msgid "Platform size (bytes):"
111120
msgstr "Platform size (bytes):"
112121

113-
#: cli/board/details.go:41
122+
#: cli/board/details.go:42
114123
msgid "Print details about a board."
115124
msgstr "Print details about a board."
116125

117-
#: cli/board/details.go:151
126+
#: cli/board/details.go:97
127+
msgid "Programmer name"
128+
msgstr "Programmer name"
129+
130+
#: cli/board/details.go:195
131+
msgid "Programmers:"
132+
msgstr "Programmers:"
133+
134+
#: cli/board/details.go:163
118135
msgid "Required tool:"
119136
msgstr "Required tool:"
120137

121-
#: cli/board/details.go:48
138+
#: cli/board/details.go:49
122139
msgid "Show full board details"
123140
msgstr "Show full board details"
124141

125-
#: cli/board/details.go:42
142+
#: cli/board/details.go:43
126143
msgid "Show information about a board, in particular if the board has options to be specified in the FQBN."
127144
msgstr "Show information about a board, in particular if the board has options to be specified in the FQBN."
128145

129-
#: cli/board/details.go:156
146+
#: cli/board/details.go:51
147+
msgid "Show list of available programmers"
148+
msgstr "Show list of available programmers"
149+
150+
#: cli/board/details.go:168
130151
msgid "Size (bytes):"
131152
msgstr "Size (bytes):"
132153

0 commit comments

Comments
 (0)