@@ -24,6 +24,7 @@ import (
24
24
25
25
"github.com/arduino/arduino-cli/commands/board"
26
26
"github.com/arduino/arduino-cli/internal/cli/feedback"
27
+ fResult "github.com/arduino/arduino-cli/internal/cli/feedback/result"
27
28
"github.com/arduino/arduino-cli/internal/cli/instance"
28
29
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
29
30
"github.com/arduino/arduino-cli/table"
@@ -60,32 +61,40 @@ func runSearchCommand(cmd *cobra.Command, args []string) {
60
61
feedback .Fatal (tr ("Error searching boards: %v" , err ), feedback .ErrGeneric )
61
62
}
62
63
63
- feedback .PrintResult (searchResults {res .Boards })
64
+ feedback .PrintResult (searchResults {fResult . NewBoardListItems ( res .Boards ) })
64
65
}
65
66
66
67
// output from this command requires special formatting so we create a dedicated
67
68
// feedback.Result implementation
68
69
type searchResults struct {
69
- boards []* rpc .BoardListItem
70
+ boards []* fResult .BoardListItem
70
71
}
71
72
72
73
func (r searchResults ) Data () interface {} {
73
74
return r .boards
74
75
}
75
76
76
77
func (r searchResults ) String () string {
78
+ t := table .New ()
79
+ t .SetHeader (tr ("Board Name" ), tr ("FQBN" ), tr ("Platform ID" ), "" )
80
+
81
+ if len (r .boards ) == 0 {
82
+ return t .Render ()
83
+ }
84
+
77
85
sort .Slice (r .boards , func (i , j int ) bool {
78
- return r .boards [i ].GetName () < r .boards [j ].GetName ()
86
+ return r .boards [i ].Name < r .boards [j ].Name
79
87
})
80
88
81
- t := table .New ()
82
- t .SetHeader (tr ("Board Name" ), tr ("FQBN" ), tr ("Platform ID" ), "" )
83
89
for _ , item := range r .boards {
90
+ if item == nil {
91
+ continue
92
+ }
84
93
hidden := ""
85
94
if item .IsHidden {
86
95
hidden = tr ("(hidden)" )
87
96
}
88
- t .AddRow (item .GetName () , item .GetFqbn () , item .Platform .Metadata .Id , hidden )
97
+ t .AddRow (item .Name , item .Fqbn , item .Platform .Metadata .Id , hidden )
89
98
}
90
99
return t .Render ()
91
100
}
0 commit comments