@@ -22,7 +22,6 @@ import (
22
22
23
23
"github.com/arduino/arduino-cli/cli/errorcodes"
24
24
"github.com/arduino/arduino-cli/cli/feedback"
25
- "github.com/arduino/arduino-cli/cli/globals"
26
25
"github.com/arduino/arduino-cli/cli/instance"
27
26
"github.com/arduino/arduino-cli/commands/lib"
28
27
rpc "github.com/arduino/arduino-cli/rpc/commands"
@@ -66,27 +65,31 @@ func runListCommand(cmd *cobra.Command, args []string) {
66
65
}
67
66
68
67
libs := res .GetInstalledLibrary ()
69
- if libs != nil {
70
- if globals .OutputFormat == "json" {
71
- feedback .PrintJSON (libs )
72
- } else {
73
- outputListLibrary (libs )
74
- }
75
- }
68
+ feedback .PrintResult (installedResult {libs })
76
69
77
70
logrus .Info ("Done" )
78
71
}
79
72
80
- func outputListLibrary (il []* rpc.InstalledLibrary ) {
81
- if il == nil || len (il ) == 0 {
82
- return
73
+ // ouput from this command requires special formatting, let's create a dedicated
74
+ // feedback.Result implementation
75
+ type installedResult struct {
76
+ installedLibs []* rpc.InstalledLibrary
77
+ }
78
+
79
+ func (ir installedResult ) Data () interface {} {
80
+ return ir .installedLibs
81
+ }
82
+
83
+ func (ir installedResult ) String () string {
84
+ if ir .installedLibs == nil || len (ir .installedLibs ) == 0 {
85
+ return ""
83
86
}
84
87
85
88
t := table .New ()
86
89
t .SetHeader ("Name" , "Installed" , "Available" , "Location" )
87
90
88
91
lastName := ""
89
- for _ , libMeta := range il {
92
+ for _ , libMeta := range ir . installedLibs {
90
93
lib := libMeta .GetLibrary ()
91
94
name := lib .Name
92
95
if name == lastName {
@@ -110,5 +113,5 @@ func outputListLibrary(il []*rpc.InstalledLibrary) {
110
113
}
111
114
}
112
115
113
- feedback . Print ( t .Render () )
116
+ return t .Render ()
114
117
}
0 commit comments