@@ -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