@@ -24,7 +24,6 @@ import (
24
24
"github.com/arduino/arduino-cli/arduino/cores"
25
25
"github.com/arduino/arduino-cli/cli/errorcodes"
26
26
"github.com/arduino/arduino-cli/cli/feedback"
27
- "github.com/arduino/arduino-cli/cli/globals"
28
27
"github.com/arduino/arduino-cli/cli/instance"
29
28
"github.com/arduino/arduino-cli/commands/core"
30
29
"github.com/arduino/arduino-cli/table"
@@ -59,26 +58,32 @@ func runListCommand(cmd *cobra.Command, args []string) {
59
58
os .Exit (errorcodes .ErrGeneric )
60
59
}
61
60
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
67
72
}
68
73
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 ""
72
77
}
73
78
74
79
t := table .New ()
75
80
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 ()
78
83
})
79
- for _ , p := range platforms {
84
+ for _ , p := range ir . platforms {
80
85
t .AddRow (p .Platform .String (), p .Version .String (), p .Platform .GetLatestRelease ().Version .String (), p .Platform .Name )
81
86
}
82
87
83
- feedback . Print ( t .Render () )
88
+ return t .Render ()
84
89
}
0 commit comments