@@ -31,20 +31,19 @@ import (
31
31
"github.com/spf13/cobra"
32
32
)
33
33
34
- var (
35
- showFullDetails bool
36
- listProgrammers bool
37
- fqbn arguments.Fqbn
38
- )
39
-
40
34
func initDetailsCommand () * cobra.Command {
35
+ var showFullDetails bool
36
+ var listProgrammers bool
37
+ var fqbn arguments.Fqbn
41
38
var detailsCommand = & cobra.Command {
42
39
Use : fmt .Sprintf ("details -b <%s>" , tr ("FQBN" )),
43
40
Short : tr ("Print details about a board." ),
44
41
Long : tr ("Show information about a board, in particular if the board has options to be specified in the FQBN." ),
45
42
Example : " " + os .Args [0 ] + " board details -b arduino:avr:nano" ,
46
43
Args : cobra .NoArgs ,
47
- Run : runDetailsCommand ,
44
+ Run : func (cmd * cobra.Command , args []string ) {
45
+ runDetailsCommand (fqbn .String (), showFullDetails , listProgrammers )
46
+ },
48
47
}
49
48
50
49
fqbn .AddToCommand (detailsCommand )
@@ -55,27 +54,33 @@ func initDetailsCommand() *cobra.Command {
55
54
return detailsCommand
56
55
}
57
56
58
- func runDetailsCommand (cmd * cobra. Command , args [] string ) {
57
+ func runDetailsCommand (fqbn string , showFullDetails , listProgrammers bool ) {
59
58
inst := instance .CreateAndInit ()
60
59
61
60
logrus .Info ("Executing `arduino-cli board details`" )
62
61
63
62
res , err := board .Details (context .Background (), & rpc.BoardDetailsRequest {
64
63
Instance : inst ,
65
- Fqbn : fqbn . String () ,
64
+ Fqbn : fqbn ,
66
65
})
67
66
68
67
if err != nil {
69
68
feedback .Fatal (tr ("Error getting board details: %v" , err ), feedback .ErrGeneric )
70
69
}
71
70
72
- feedback .PrintResult (detailsResult {details : res })
71
+ feedback .PrintResult (detailsResult {
72
+ details : res ,
73
+ listProgrammers : listProgrammers ,
74
+ showFullDetails : showFullDetails ,
75
+ })
73
76
}
74
77
75
78
// output from this command requires special formatting, let's create a dedicated
76
79
// feedback.Result implementation
77
80
type detailsResult struct {
78
- details * rpc.BoardDetailsResponse
81
+ details * rpc.BoardDetailsResponse
82
+ listProgrammers bool
83
+ showFullDetails bool
79
84
}
80
85
81
86
func (dr detailsResult ) Data () interface {} {
@@ -85,7 +90,7 @@ func (dr detailsResult) Data() interface{} {
85
90
func (dr detailsResult ) String () string {
86
91
details := dr .details
87
92
88
- if listProgrammers {
93
+ if dr . listProgrammers {
89
94
t := table .New ()
90
95
t .AddRow (tr ("Id" ), tr ("Programmer name" ))
91
96
for _ , programmer := range details .Programmers {
@@ -160,7 +165,7 @@ func (dr detailsResult) String() string {
160
165
tab .SetColumnWidthMode (1 , table .Average )
161
166
for _ , tool := range details .ToolsDependencies {
162
167
tab .AddRow (tr ("Required tool:" ), tool .Packager + ":" + tool .Name , tool .Version )
163
- if showFullDetails {
168
+ if dr . showFullDetails {
164
169
for _ , sys := range tool .Systems {
165
170
tab .AddRow ("" , tr ("OS:" ), sys .Host )
166
171
tab .AddRow ("" , tr ("File:" ), sys .ArchiveFilename )
0 commit comments