Skip to content

Commit 94413ed

Browse files
committed
Better handling of 'core outdated' results
1 parent 9e1ea0e commit 94413ed

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

Diff for: internal/cli/outdated/outdated.go

+18-5
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/arduino/arduino-cli/i18n"
2525
"github.com/arduino/arduino-cli/internal/cli/core"
2626
"github.com/arduino/arduino-cli/internal/cli/feedback"
27+
"github.com/arduino/arduino-cli/internal/cli/feedback/result"
2728
"github.com/arduino/arduino-cli/internal/cli/instance"
2829
"github.com/arduino/arduino-cli/internal/cli/lib"
2930
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -57,17 +58,26 @@ func runOutdatedCommand(cmd *cobra.Command, args []string) {
5758
// Outdated prints a list of outdated platforms and libraries
5859
func Outdated(inst *rpc.Instance) {
5960
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)),
6162
)
6263
}
6364

6465
// output from this command requires special formatting, let's create a dedicated
6566
// feedback.Result implementation
6667
type outdatedResult struct {
67-
Platforms []*rpc.PlatformSummary `json:"platforms,omitempty"`
68+
Platforms []*result.Platform `json:"platforms,omitempty"`
6869
InstalledLibs []*rpc.InstalledLibrary `json:"libraries,omitempty"`
6970
}
7071

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+
7181
func (ir outdatedResult) Data() interface{} {
7282
return &ir
7383
}
@@ -93,11 +103,14 @@ func (ir outdatedResult) String() string {
93103

94104
// Based on internal/cli/core/list.go
95105
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 {
98111
name = fmt.Sprintf("[%s] %s", tr("DEPRECATED"), name)
99112
}
100-
t.AddRow(p.GetMetadata().Id, name, p.InstalledVersion, p.LatestVersion, "", "")
113+
t.AddRow(p.Id, name, p.InstalledVersion, p.LatestVersion, "", "")
101114
}
102115

103116
// Based on internal/cli/lib/list.go

0 commit comments

Comments
 (0)