@@ -24,6 +24,7 @@ import (
24
24
"github.com/arduino/arduino-cli/i18n"
25
25
"github.com/arduino/arduino-cli/internal/cli/core"
26
26
"github.com/arduino/arduino-cli/internal/cli/feedback"
27
+ "github.com/arduino/arduino-cli/internal/cli/feedback/result"
27
28
"github.com/arduino/arduino-cli/internal/cli/instance"
28
29
"github.com/arduino/arduino-cli/internal/cli/lib"
29
30
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -57,17 +58,26 @@ func runOutdatedCommand(cmd *cobra.Command, args []string) {
57
58
// Outdated prints a list of outdated platforms and libraries
58
59
func Outdated (inst * rpc.Instance ) {
59
60
feedback .PrintResult (
60
- outdatedResult { core .GetList (inst , false , true ), lib .GetList (inst , []string {}, false , true )} ,
61
+ newOutdatedResult ( core .GetList (inst , false , true ), lib .GetList (inst , []string {}, false , true )) ,
61
62
)
62
63
}
63
64
64
65
// output from this command requires special formatting, let's create a dedicated
65
66
// feedback.Result implementation
66
67
type outdatedResult struct {
67
- Platforms []* rpc. PlatformSummary `json:"platforms,omitempty"`
68
+ Platforms []* result. Platform `json:"platforms,omitempty"`
68
69
InstalledLibs []* rpc.InstalledLibrary `json:"libraries,omitempty"`
69
70
}
70
71
72
+ func newOutdatedResult (inPlatforms []* rpc.PlatformSummary , inLibraries []* rpc.InstalledLibrary ) * outdatedResult {
73
+ res := & outdatedResult {}
74
+ for _ , platformSummary := range inPlatforms {
75
+ res .Platforms = append (res .Platforms , result .NewPlatformResult (platformSummary ))
76
+ }
77
+ res .InstalledLibs = inLibraries
78
+ return res
79
+ }
80
+
71
81
func (ir outdatedResult ) Data () interface {} {
72
82
return & ir
73
83
}
@@ -93,11 +103,14 @@ func (ir outdatedResult) String() string {
93
103
94
104
// Based on internal/cli/core/list.go
95
105
for _ , p := range ir .Platforms {
96
- name := p .GetLatestRelease ().GetName ()
97
- if p .GetMetadata ().Deprecated {
106
+ name := ""
107
+ if latest := p .GetLatestRelease (); latest != nil {
108
+ name = latest .Name
109
+ }
110
+ if p .Deprecated {
98
111
name = fmt .Sprintf ("[%s] %s" , tr ("DEPRECATED" ), name )
99
112
}
100
- t .AddRow (p .GetMetadata (). Id , name , p .InstalledVersion , p .LatestVersion , "" , "" )
113
+ t .AddRow (p .Id , name , p .InstalledVersion , p .LatestVersion , "" , "" )
101
114
}
102
115
103
116
// Based on internal/cli/lib/list.go
0 commit comments