Skip to content

Commit 9e1ea0e

Browse files
committed
Better handling of 'core search' results
1 parent 7cb8576 commit 9e1ea0e

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

internal/cli/core/search.go

+18-6
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929
"github.com/arduino/arduino-cli/commands/core"
3030
"github.com/arduino/arduino-cli/configuration"
3131
"github.com/arduino/arduino-cli/internal/cli/feedback"
32+
"github.com/arduino/arduino-cli/internal/cli/feedback/result"
3233
"github.com/arduino/arduino-cli/internal/cli/instance"
3334
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
3435
"github.com/arduino/arduino-cli/table"
@@ -81,13 +82,21 @@ func runSearchCommand(cmd *cobra.Command, args []string) {
8182
}
8283

8384
coreslist := resp.GetSearchOutput()
84-
feedback.PrintResult(searchResults{coreslist})
85+
feedback.PrintResult(newSearchResult(coreslist))
8586
}
8687

8788
// output from this command requires special formatting, let's create a dedicated
8889
// feedback.Result implementation
8990
type searchResults struct {
90-
platforms []*rpc.PlatformSummary
91+
platforms []*result.Platform
92+
}
93+
94+
func newSearchResult(in []*rpc.PlatformSummary) *searchResults {
95+
res := &searchResults{}
96+
for _, platformSummary := range in {
97+
res.platforms = append(res.platforms, result.NewPlatformResult(platformSummary))
98+
}
99+
return res
91100
}
92101

93102
func (sr searchResults) Data() interface{} {
@@ -99,12 +108,15 @@ func (sr searchResults) String() string {
99108
t := table.New()
100109
t.SetHeader(tr("ID"), tr("Version"), tr("Name"))
101110
for _, platform := range sr.platforms {
102-
name := platform.GetLatestRelease().GetName()
103-
if platform.GetMetadata().Deprecated {
111+
name := ""
112+
if latest := platform.GetLatestRelease(); latest != nil {
113+
name = latest.Name
114+
}
115+
if platform.Deprecated {
104116
name = fmt.Sprintf("[%s] %s", tr("DEPRECATED"), name)
105117
}
106-
for _, platformRelease := range platform.GetSortedReleases() {
107-
t.AddRow(platform.GetMetadata().GetId(), platformRelease.GetVersion(), name)
118+
for _, version := range platform.Releases.Keys() {
119+
t.AddRow(platform.Id, version, name)
108120
}
109121
}
110122
return t.Render()

0 commit comments

Comments
 (0)