Skip to content

Commit 6ad3feb

Browse files
author
Massimiliano Pippi
committed
make core list format agnostic
1 parent 4276dfd commit 6ad3feb

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

cli/core/list.go

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"github.com/arduino/arduino-cli/arduino/cores"
2525
"github.com/arduino/arduino-cli/cli/errorcodes"
2626
"github.com/arduino/arduino-cli/cli/feedback"
27-
"github.com/arduino/arduino-cli/cli/globals"
2827
"github.com/arduino/arduino-cli/cli/instance"
2928
"github.com/arduino/arduino-cli/commands/core"
3029
"github.com/arduino/arduino-cli/table"
@@ -59,26 +58,32 @@ func runListCommand(cmd *cobra.Command, args []string) {
5958
os.Exit(errorcodes.ErrGeneric)
6059
}
6160

62-
if globals.OutputFormat == "json" {
63-
feedback.PrintJSON(platforms)
64-
} else {
65-
outputInstalledCores(platforms)
66-
}
61+
feedback.PrintResult(installedResult{platforms})
62+
}
63+
64+
// ouput from this command requires special formatting, let's create a dedicated
65+
// feedback.Result implementation
66+
type installedResult struct {
67+
platforms []*cores.PlatformRelease
68+
}
69+
70+
func (ir installedResult) Data() interface{} {
71+
return ir.platforms
6772
}
6873

69-
func outputInstalledCores(platforms []*cores.PlatformRelease) {
70-
if platforms == nil || len(platforms) == 0 {
71-
return
74+
func (ir installedResult) String() string {
75+
if ir.platforms == nil || len(ir.platforms) == 0 {
76+
return ""
7277
}
7378

7479
t := table.New()
7580
t.SetHeader("ID", "Installed", "Latest", "Name")
76-
sort.Slice(platforms, func(i, j int) bool {
77-
return platforms[i].Platform.String() < platforms[j].Platform.String()
81+
sort.Slice(ir.platforms, func(i, j int) bool {
82+
return ir.platforms[i].Platform.String() < ir.platforms[j].Platform.String()
7883
})
79-
for _, p := range platforms {
84+
for _, p := range ir.platforms {
8085
t.AddRow(p.Platform.String(), p.Version.String(), p.Platform.GetLatestRelease().Version.String(), p.Platform.Name)
8186
}
8287

83-
feedback.Print(t.Render())
88+
return t.Render()
8489
}

0 commit comments

Comments
 (0)