Skip to content

Commit d3c7d95

Browse files
apply CR suggestions
1 parent 50d74a4 commit d3c7d95

File tree

3 files changed

+34
-44
lines changed

3 files changed

+34
-44
lines changed

Diff for: arduino/cores/cores.go

+7-18
Original file line numberDiff line numberDiff line change
@@ -236,21 +236,15 @@ func (platform *Platform) GetLatestCompatibleRelease() *PlatformRelease {
236236
if len(platform.Releases) == 0 {
237237
return nil
238238
}
239-
maximum := &PlatformRelease{Version: &semver.Version{}}
239+
var maximum *PlatformRelease
240240
for _, release := range platform.Releases {
241241
if !release.IsCompatible() {
242242
continue
243243
}
244-
if release.Version.GreaterThan(maximum.Version) {
244+
if maximum == nil || release.Version.GreaterThan(maximum.Version) {
245245
maximum = release
246246
}
247247
}
248-
249-
// In case no compatible versions found return nil
250-
if maximum.Version.Equal(&semver.Version{}) {
251-
return nil
252-
}
253-
254248
return maximum
255249
}
256250

@@ -306,18 +300,13 @@ func (platform *Platform) latestReleaseVersion() *semver.Version {
306300
// latestCompatibleReleaseVersion obtains latest version number, for platforms that contains compatible tools, or nil if no release available
307301
func (platform *Platform) latestCompatibleReleaseVersion() *semver.Version {
308302
versions := platform.GetAllCompatibleReleasesVersions()
309-
if len(versions) == 0 {
310-
return nil
311-
}
312-
max := versions[0]
313-
314-
for i := 1; i < len(versions); i++ {
315-
if versions[i].GreaterThan(max) {
316-
max = versions[i]
303+
var maxVer *semver.Version
304+
for _, v := range versions {
305+
if maxVer == nil || v.GreaterThan(maxVer) {
306+
maxVer = v
317307
}
318308
}
319-
320-
return max
309+
return maxVer
321310
}
322311

323312
// GetAllInstalled returns all installed PlatformRelease

Diff for: internal/cli/arguments/completion.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,9 @@ func GetInstallableCores() []string {
113113
var res []string
114114
// transform the data structure for the completion
115115
for _, i := range platforms.GetSearchOutput() {
116-
if i.GetLatestCompatibleVersion() == "" {
117-
continue
116+
if latest := i.GetLatestCompatibleRelease(); latest != nil {
117+
res = append(res, i.GetMetadata().GetId()+"\t"+latest.GetName())
118118
}
119-
res = append(res, i.GetMetadata().GetId()+"\t"+i.GetLatestCompatibleRelease().GetName())
120119
}
121120
return res
122121
}

Diff for: internal/cli/core/search.go

+25-23
Original file line numberDiff line numberDiff line change
@@ -107,33 +107,35 @@ func (sr searchResults) Data() interface{} {
107107
}
108108

109109
func (sr searchResults) String() string {
110-
if len(sr.platforms) > 0 {
111-
t := table.New()
112-
t.SetHeader(tr("ID"), tr("Version"), tr("Name"))
113-
for _, platform := range sr.platforms {
114-
// When allVersions is not requested we only show the latest compatible version
115-
if !sr.allVersions {
116-
if latestCompatible := platform.GetLatestCompatibleRelease(); latestCompatible != nil {
117-
name := latestCompatible.Name
118-
if latestCompatible.Deprecated {
119-
name = fmt.Sprintf("[%s] %s", tr("DEPRECATED"), latestCompatible.Name)
120-
}
121-
t.AddRow(platform.Id, latestCompatible.Version, name)
122-
}
123-
continue
124-
}
110+
if len(sr.platforms) == 0 {
111+
return tr("No platforms matching your search.")
112+
}
113+
114+
t := table.New()
115+
t.SetHeader(tr("ID"), tr("Version"), tr("Name"))
125116

126-
for _, release := range platform.Releases.Values() {
127-
name := release.Name
128-
if platform.Deprecated {
129-
name = fmt.Sprintf("[%s] %s", tr("DEPRECATED"), release.Name)
130-
}
131-
t.AddRow(platform.Id, release.Version, name)
117+
addRow := func(platform *result.PlatformSummary, release *result.PlatformRelease) {
118+
name := release.Name
119+
if release.Deprecated {
120+
name = fmt.Sprintf("[%s] %s", tr("DEPRECATED"), release.Name)
121+
}
122+
t.AddRow(platform.Id, release.Version, name)
123+
}
124+
125+
for _, platform := range sr.platforms {
126+
// When allVersions is not requested we only show the latest compatible version
127+
if !sr.allVersions {
128+
if latestCompatible := platform.GetLatestCompatibleRelease(); latestCompatible != nil {
129+
addRow(platform, latestCompatible)
132130
}
131+
continue
132+
}
133+
134+
for _, release := range platform.Releases.Values() {
135+
addRow(platform, release)
133136
}
134-
return t.Render()
135137
}
136-
return tr("No platforms matching your search.")
138+
return t.Render()
137139
}
138140

139141
// indexesNeedUpdating returns whether one or more index files need updating.

0 commit comments

Comments
 (0)