@@ -21,59 +21,65 @@ import (
2121 "fmt"
2222 "sort"
2323
24- "github.com/arduino/arduino-cli/arduino/cores"
2524 "github.com/gosuri/uitable"
2625 semver "go.bug.st/relaxed-semver"
2726)
2827
29- // InstalledPlatformReleases represents an output set of installed platforms.
30- type InstalledPlatformReleases []* cores.PlatformRelease
31-
32- func (is InstalledPlatformReleases ) Len () int { return len (is ) }
33- func (is InstalledPlatformReleases ) Swap (i , j int ) { is [i ], is [j ] = is [j ], is [i ] }
34- func (is InstalledPlatformReleases ) Less (i , j int ) bool {
35- return is [i ].Platform .String () < is [j ].Platform .String ()
28+ // InstalledPlatforms represents an output of a set of installed platforms.
29+ type InstalledPlatforms struct {
30+ Platforms []* InstalledPlatform
3631}
3732
38- // PlatformReleases represents an output set of tools of platforms.
39- type PlatformReleases []* cores.PlatformRelease
33+ // InstalledPlatform represents an output of an installed plaform.
34+ type InstalledPlatform struct {
35+ ID string
36+ Installed * semver.Version
37+ Latest * semver.Version
38+ Name string
39+ }
4040
41- func (is PlatformReleases ) Len () int { return len (is ) }
42- func (is PlatformReleases ) Swap (i , j int ) { is [i ], is [j ] = is [j ], is [i ] }
43- func (is PlatformReleases ) Less (i , j int ) bool {
44- return is [i ].Platform .String () < is [j ].Platform .String ()
41+ func (is InstalledPlatforms ) less (i , j int ) bool {
42+ return is .Platforms [i ].ID < is .Platforms [j ].ID
4543}
4644
47- func (is InstalledPlatformReleases ) String () string {
45+ func (is InstalledPlatforms ) String () string {
4846 table := uitable .New ()
4947 table .MaxColWidth = 100
5048 table .Wrap = true
5149
5250 table .AddRow ("ID" , "Installed" , "Latest" , "Name" )
53- sort .Sort (is )
54- for _ , item := range is {
55- var latestVersion * semver.Version
56- if latest := item .Platform .GetLatestRelease (); latest != nil {
57- latestVersion = latest .Version
58- }
59- table .AddRow (item .Platform , item .Version , latestVersion , item .Platform .Name )
51+ sort .Slice (is .Platforms , is .less )
52+ for _ , item := range is .Platforms {
53+ table .AddRow (item .ID , item .Installed , item .Latest , item .Name )
6054 }
6155 return fmt .Sprintln (table )
6256}
6357
64- func (is PlatformReleases ) String () string {
58+ // SearchedPlatforms represents an output of a set of searched platforms
59+ type SearchedPlatforms struct {
60+ Platforms []* SearchedPlatform
61+ }
62+
63+ func (is SearchedPlatforms ) less (i , j int ) bool {
64+ return is .Platforms [i ].ID < is .Platforms [j ].ID
65+ }
66+
67+ // SearchedPlatform represents an output of a searched platform
68+ type SearchedPlatform struct {
69+ ID string
70+ Version * semver.Version
71+ Name string
72+ }
73+
74+ func (is SearchedPlatforms ) String () string {
6575 table := uitable .New ()
6676 table .MaxColWidth = 100
6777 table .Wrap = true
6878
69- table .AddRow ("ID" , "Version" , "Installed" , "Name" )
70- sort .Sort (is )
71- for _ , item := range is {
72- installed := "No"
73- if item .InstallDir != nil {
74- installed = "Yes"
75- }
76- table .AddRow (item .Platform .String (), item .Version , installed , item .Platform .Name )
79+ sort .Slice (is .Platforms , is .less )
80+ table .AddRow ("ID" , "Version" , "Name" )
81+ for _ , item := range is .Platforms {
82+ table .AddRow (item .ID , item .Version , item .Name )
7783 }
7884 return fmt .Sprintln (table )
7985}
0 commit comments