Skip to content

Commit 5a24cc9

Browse files
committed
Renamed some fields in cores package and other small makeup
No behavioural changes, inlined two methods and removed one file.
1 parent 33c3d80 commit 5a24cc9

File tree

5 files changed

+110
-157
lines changed

5 files changed

+110
-157
lines changed

commands/core/install.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,14 @@ func runInstallCommand(cmd *cobra.Command, args []string) {
7777
Cores: failOutputs,
7878
Tools: make([]output.ProcessResult, 0, 10),
7979
}
80+
8081
downloads := make([]releases.DownloadItem, len(toolsToDownload))
8182
for i := range toolsToDownload {
8283
downloads[i] = toolsToDownload[i].DownloadItem
8384
}
84-
8585
logrus.Info("Downloading tool dependencies of all cores requested")
8686
releases.ParallelDownload(downloads, false, "Downloaded", &outputResults.Tools, "tool")
87+
8788
downloads = make([]releases.DownloadItem, len(coresToDownload))
8889
for i := range coresToDownload {
8990
downloads[i] = coresToDownload[i].DownloadItem

cores/cores.go

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,16 @@ import (
4040
"github.com/blang/semver"
4141
)
4242

43-
// Core represents a core package.
44-
type Core struct {
45-
Name string // The name of the Core Package.
46-
Architecture string // The name of the architecture of this package.
47-
Category string // The category which this core package belongs to.
48-
Releases map[string]*Release // The Releases of this core package, labeled by version.
43+
// Platform represents a platform package.
44+
type Platform struct {
45+
Name string // The name of the Core Package.
46+
Architecture string // The name of the architecture of this package.
47+
Category string // The category which this core package belongs to.
48+
Releases map[string]*PlatformRelease // The Releases of this core package, labeled by version.
4949
}
5050

51-
// Release represents a release of a core package.
52-
type Release struct {
51+
// PlatformRelease represents a release of a core package.
52+
type PlatformRelease struct {
5353
Version string
5454
ArchiveFileName string
5555
Checksum string
@@ -71,17 +71,17 @@ type ToolDependency struct {
7171

7272
// GetVersion returns the specified release corresponding the provided version,
7373
// or nil if not found.
74-
func (core *Core) GetVersion(version string) *Release {
74+
func (platform *Platform) GetVersion(version string) *PlatformRelease {
7575
if version == "latest" {
76-
return core.GetVersion(core.latestVersion())
76+
return platform.GetVersion(platform.latestVersion())
7777
}
78-
return core.Releases[version]
78+
return platform.Releases[version]
7979
}
8080

8181
// Versions returns all the version numbers in this Core Package.
82-
func (core *Core) Versions() semver.Versions {
83-
versions := make(semver.Versions, 0, len(core.Releases))
84-
for _, release := range core.Releases {
82+
func (platform *Platform) Versions() semver.Versions {
83+
versions := make(semver.Versions, 0, len(platform.Releases))
84+
for _, release := range platform.Releases {
8585
temp, err := semver.Make(release.Version)
8686
if err == nil {
8787
versions = append(versions, temp)
@@ -94,8 +94,8 @@ func (core *Core) Versions() semver.Versions {
9494
// latestVersion obtains latest version number.
9595
//
9696
// It uses lexicographics to compare version strings.
97-
func (core *Core) latestVersion() string {
98-
versions := core.Versions()
97+
func (platform *Platform) latestVersion() string {
98+
versions := platform.Versions()
9999
if len(versions) > 0 {
100100
max := versions[0]
101101
for i := 1; i < len(versions); i++ {
@@ -108,20 +108,20 @@ func (core *Core) latestVersion() string {
108108
return ""
109109
}
110110

111-
func (core *Core) String() string {
112-
res := fmt.Sprintln("Name :", core.Name) +
113-
fmt.Sprintln("Architecture:", core.Architecture) +
114-
fmt.Sprintln("Category :", core.Category)
115-
if core.Releases != nil && len(core.Releases) > 0 {
111+
func (platform *Platform) String() string {
112+
res := fmt.Sprintln("Name :", platform.Name) +
113+
fmt.Sprintln("Architecture:", platform.Architecture) +
114+
fmt.Sprintln("Category :", platform.Category)
115+
if platform.Releases != nil && len(platform.Releases) > 0 {
116116
res += "Releases:\n"
117-
for _, release := range core.Releases {
117+
for _, release := range platform.Releases {
118118
res += fmt.Sprintln(release)
119119
}
120120
}
121121
return res
122122
}
123123

124-
func (release *Release) String() string {
124+
func (release *PlatformRelease) String() string {
125125
return fmt.Sprintln(" Version : ", release.Version) +
126126
fmt.Sprintln(" Boards :") +
127127
fmt.Sprintln(strings.Join(release.Boards, ", ")) +
@@ -132,7 +132,7 @@ func (release *Release) String() string {
132132
}
133133

134134
// OpenLocalArchiveForDownload Creates an empty file if not found.
135-
func (release Release) OpenLocalArchiveForDownload() (*os.File, error) {
135+
func (release PlatformRelease) OpenLocalArchiveForDownload() (*os.File, error) {
136136
path, err := releases.ArchivePath(release)
137137
if err != nil {
138138
return nil, err
@@ -149,31 +149,31 @@ func (release Release) OpenLocalArchiveForDownload() (*os.File, error) {
149149
// Implementation of Release interface
150150

151151
// ExpectedChecksum returns the expected checksum for this release.
152-
func (release Release) ExpectedChecksum() string {
152+
func (release PlatformRelease) ExpectedChecksum() string {
153153
return release.Checksum
154154
}
155155

156156
// ArchiveName returns the archive file name (not the path)
157-
func (release Release) ArchiveName() string {
157+
func (release PlatformRelease) ArchiveName() string {
158158
return release.ArchiveFileName
159159
}
160160

161161
// ArchiveSize returns the archive size.
162-
func (release Release) ArchiveSize() int64 {
162+
func (release PlatformRelease) ArchiveSize() int64 {
163163
return release.Size
164164
}
165165

166166
// ArchiveURL returns the archive URL.
167-
func (release Release) ArchiveURL() string {
167+
func (release PlatformRelease) ArchiveURL() string {
168168
return release.URL
169169
}
170170

171171
// GetDownloadCacheFolder returns the path of the staging folders for this release.
172-
func (release Release) GetDownloadCacheFolder() (string, error) {
172+
func (release PlatformRelease) GetDownloadCacheFolder() (string, error) {
173173
return configs.DownloadCacheFolder("packages").Get()
174174
}
175175

176176
// VersionName represents the version of the release.
177-
func (release Release) VersionName() string {
177+
func (release PlatformRelease) VersionName() string {
178178
return release.Version
179179
}

cores/index.go

Lines changed: 57 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,17 @@ type Index struct {
4646

4747
// indexPackage represents a single entry from package_index.json file.
4848
type indexPackage struct {
49-
Name string `json:"name,required"`
50-
Maintainer string `json:"maintainer,required"`
51-
WebsiteURL string `json:"websiteUrl"`
52-
Email string `json:"email"`
53-
Platforms []*indexCoreRelease `json:"platforms,required"`
54-
Tools []*indexToolRelease `json:"tools,required"`
55-
Help indexHelpRelease `json:"help,omitempty"`
49+
Name string `json:"name,required"`
50+
Maintainer string `json:"maintainer,required"`
51+
WebsiteURL string `json:"websiteUrl"`
52+
Email string `json:"email"`
53+
Platforms []*indexPlatformRelease `json:"platforms,required"`
54+
Tools []*indexToolRelease `json:"tools,required"`
55+
Help indexHelp `json:"help,omitempty"`
5656
}
5757

58-
// indexCoreRelease represents a single Core Platform from package_index.json file.
59-
type indexCoreRelease struct {
58+
// indexPlatformRelease represents a single Core Platform from package_index.json file.
59+
type indexPlatformRelease struct {
6060
Name string `json:"name,required"`
6161
Architecture string `json:"architecture"`
6262
Version string `json:"version,required"`
@@ -65,8 +65,8 @@ type indexCoreRelease struct {
6565
ArchiveFileName string `json:"archiveFileName,required"`
6666
Checksum string `json:"checksum,required"`
6767
Size int64 `json:"size,required,string"`
68-
Boards []indexBoardRelease `json:"boards"`
69-
Help indexHelpRelease `json:"help,omitempty"`
68+
BoardsNames []indexBoardName `json:"boards"`
69+
Help indexHelp `json:"help,omitempty"`
7070
ToolDependencies []indexToolDependency `json:"toolsDependencies, required"`
7171
}
7272

@@ -79,60 +79,72 @@ type indexToolDependency struct {
7979

8080
// indexToolRelease represents a single Tool from package_index.json file.
8181
type indexToolRelease struct {
82-
Name string `json:"name,required"`
83-
Version string `json:"version,required"`
84-
Systems []indexFlavourRelease `json:"systems,required"`
82+
Name string `json:"name,required"`
83+
Version string `json:"version,required"`
84+
Systems []indexToolReleaseFlavour `json:"systems,required"`
8585
}
8686

87-
//indexFlavourRelease represents a single flavour in the package_index.json file.
88-
type indexFlavourRelease struct {
87+
// indexToolReleaseFlavour represents a single tool flavour in the package_index.json file.
88+
type indexToolReleaseFlavour struct {
8989
OS string `json:"host,required"`
9090
URL string `json:"url,required"`
9191
ArchiveFileName string `json:"archiveFileName,required"`
9292
Size int64 `json:"size,required,string"`
9393
Checksum string `json:"checksum,required"`
9494
}
9595

96-
// indexBoardRelease represents a single Board as written in package_index.json file.
97-
type indexBoardRelease struct {
96+
// indexBoardName represents a single Board as written in package_index.json file.
97+
type indexBoardName struct {
9898
Name string
9999
}
100100

101-
type indexHelpRelease struct {
101+
type indexHelp struct {
102102
Online string `json:"online,omitempty"`
103103
}
104104

105-
func (packag indexPackage) extractPackage() (pm *Package) {
106-
pm = &Package{
107-
Name: packag.Name,
108-
Maintainer: packag.Maintainer,
109-
WebsiteURL: packag.WebsiteURL,
110-
Email: packag.Email,
111-
Cores: make(map[string]*Core, len(packag.Platforms)),
112-
Tools: make(map[string]*Tool, len(packag.Tools)),
105+
func (pack indexPackage) extractPackage() *Package {
106+
p := &Package{
107+
Name: pack.Name,
108+
Maintainer: pack.Maintainer,
109+
WebsiteURL: pack.WebsiteURL,
110+
Email: pack.Email,
111+
Plaftorms: map[string]*Platform{},
112+
Tools: map[string]*Tool{},
113113
}
114114

115-
for _, tool := range packag.Tools {
116-
pm.addTool(tool)
115+
for _, tool := range pack.Tools {
116+
name := tool.Name
117+
if p.Tools[name] == nil {
118+
p.Tools[name] = tool.extractTool()
119+
} else {
120+
p.Tools[name].Releases[tool.Version] = tool.extractRelease()
121+
}
117122
}
118-
for _, core := range packag.Platforms {
119-
pm.addCore(core)
123+
124+
for _, platform := range pack.Platforms {
125+
name := platform.Architecture
126+
if p.Plaftorms[name] == nil {
127+
p.Plaftorms[name] = platform.extractPlatform()
128+
} else {
129+
release := platform.extractRelease()
130+
p.Plaftorms[name].Releases[release.Version] = release
131+
}
120132
}
121133

122-
return
134+
return p
123135
}
124136

125-
func (release indexCoreRelease) extractCore() *Core {
126-
return &Core{
137+
func (release indexPlatformRelease) extractPlatform() *Platform {
138+
return &Platform{
127139
Name: release.Name,
128140
Architecture: release.Architecture,
129141
Category: release.Category,
130-
Releases: map[string]*Release{release.Version: release.extractRelease()},
142+
Releases: map[string]*PlatformRelease{release.Version: release.extractRelease()},
131143
}
132144
}
133145

134-
func (release indexCoreRelease) extractRelease() *Release {
135-
return &Release{
146+
func (release indexPlatformRelease) extractRelease() *PlatformRelease {
147+
return &PlatformRelease{
136148
Version: release.Version,
137149
ArchiveFileName: release.ArchiveFileName,
138150
Checksum: release.Checksum,
@@ -143,7 +155,7 @@ func (release indexCoreRelease) extractRelease() *Release {
143155
}
144156
}
145157

146-
func (release indexCoreRelease) extractDeps() ToolDependencies {
158+
func (release indexPlatformRelease) extractDeps() ToolDependencies {
147159
ret := make(ToolDependencies, len(release.ToolDependencies))
148160
for i, dep := range release.ToolDependencies {
149161
ret[i] = &ToolDependency{
@@ -155,21 +167,21 @@ func (release indexCoreRelease) extractDeps() ToolDependencies {
155167
return ret
156168
}
157169

158-
func (release indexCoreRelease) extractBoards() []string {
159-
boards := make([]string, len(release.Boards))
160-
for i, board := range release.Boards {
170+
func (release indexPlatformRelease) extractBoards() []string {
171+
boards := make([]string, len(release.BoardsNames))
172+
for i, board := range release.BoardsNames {
161173
boards[i] = board.Name
162174
}
163175
return boards
164176
}
165177

166178
// extractTool extracts a Tool object from an indexToolRelease entry.
167179
func (itr indexToolRelease) extractTool() *Tool {
168-
releases := make(map[string]*ToolRelease, len(itr.Systems))
169-
releases[itr.Version] = itr.extractRelease()
170180
return &Tool{
171-
Name: itr.Name,
172-
Releases: releases,
181+
Name: itr.Name,
182+
Releases: map[string]*ToolRelease{
183+
itr.Version: itr.extractRelease(),
184+
},
173185
}
174186
}
175187

cores/package_manager.go

Lines changed: 0 additions & 62 deletions
This file was deleted.

0 commit comments

Comments
 (0)