@@ -31,20 +31,19 @@ import (
3131 "github.com/spf13/cobra"
3232)
3333
34- var (
35- showFullDetails bool
36- listProgrammers bool
37- fqbn arguments.Fqbn
38- )
39-
4034func initDetailsCommand () * cobra.Command {
35+ var showFullDetails bool
36+ var listProgrammers bool
37+ var fqbn arguments.Fqbn
4138 var detailsCommand = & cobra.Command {
4239 Use : fmt .Sprintf ("details -b <%s>" , tr ("FQBN" )),
4340 Short : tr ("Print details about a board." ),
4441 Long : tr ("Show information about a board, in particular if the board has options to be specified in the FQBN." ),
4542 Example : " " + os .Args [0 ] + " board details -b arduino:avr:nano" ,
4643 Args : cobra .NoArgs ,
47- Run : runDetailsCommand ,
44+ Run : func (cmd * cobra.Command , args []string ) {
45+ runDetailsCommand (fqbn .String (), showFullDetails , listProgrammers )
46+ },
4847 }
4948
5049 fqbn .AddToCommand (detailsCommand )
@@ -55,27 +54,33 @@ func initDetailsCommand() *cobra.Command {
5554 return detailsCommand
5655}
5756
58- func runDetailsCommand (cmd * cobra. Command , args [] string ) {
57+ func runDetailsCommand (fqbn string , showFullDetails , listProgrammers bool ) {
5958 inst := instance .CreateAndInit ()
6059
6160 logrus .Info ("Executing `arduino-cli board details`" )
6261
6362 res , err := board .Details (context .Background (), & rpc.BoardDetailsRequest {
6463 Instance : inst ,
65- Fqbn : fqbn . String () ,
64+ Fqbn : fqbn ,
6665 })
6766
6867 if err != nil {
6968 feedback .Fatal (tr ("Error getting board details: %v" , err ), feedback .ErrGeneric )
7069 }
7170
72- feedback .PrintResult (detailsResult {details : res })
71+ feedback .PrintResult (detailsResult {
72+ details : res ,
73+ listProgrammers : listProgrammers ,
74+ showFullDetails : showFullDetails ,
75+ })
7376}
7477
7578// output from this command requires special formatting, let's create a dedicated
7679// feedback.Result implementation
7780type detailsResult struct {
78- details * rpc.BoardDetailsResponse
81+ details * rpc.BoardDetailsResponse
82+ listProgrammers bool
83+ showFullDetails bool
7984}
8085
8186func (dr detailsResult ) Data () interface {} {
@@ -85,7 +90,7 @@ func (dr detailsResult) Data() interface{} {
8590func (dr detailsResult ) String () string {
8691 details := dr .details
8792
88- if listProgrammers {
93+ if dr . listProgrammers {
8994 t := table .New ()
9095 t .AddRow (tr ("Id" ), tr ("Programmer name" ))
9196 for _ , programmer := range details .Programmers {
@@ -160,7 +165,7 @@ func (dr detailsResult) String() string {
160165 tab .SetColumnWidthMode (1 , table .Average )
161166 for _ , tool := range details .ToolsDependencies {
162167 tab .AddRow (tr ("Required tool:" ), tool .Packager + ":" + tool .Name , tool .Version )
163- if showFullDetails {
168+ if dr . showFullDetails {
164169 for _ , sys := range tool .Systems {
165170 tab .AddRow ("" , tr ("OS:" ), sys .Host )
166171 tab .AddRow ("" , tr ("File:" ), sys .ArchiveFilename )
0 commit comments