Skip to content

Commit 481705d

Browse files
committed
Allow index.json to specify numbers as non quoted strings.
https://stackoverflow.com/questions/24480835/decoding-json-int-into-string
1 parent b472d7c commit 481705d

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

arduino/cores/packageindex/index.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ type indexPlatformRelease struct {
6363
URL string `json:"url"`
6464
ArchiveFileName string `json:"archiveFileName,required"`
6565
Checksum string `json:"checksum,required"`
66-
Size int64 `json:"size,required,string"`
66+
Size json.Number `json:"size,required"`
6767
BoardsNames []indexBoardName `json:"boards"`
6868
Help indexHelp `json:"help,omitempty"`
69-
ToolDependencies []indexToolDependency `json:"toolsDependencies, required"`
69+
ToolDependencies []indexToolDependency `json:"toolsDependencies,required"`
7070
}
7171

7272
// indexToolDependency represents a single dependency of a core from a tool.
@@ -85,11 +85,11 @@ type indexToolRelease struct {
8585

8686
// indexToolReleaseFlavour represents a single tool flavour in the package_index.json file.
8787
type indexToolReleaseFlavour struct {
88-
OS string `json:"host,required"`
89-
URL string `json:"url,required"`
90-
ArchiveFileName string `json:"archiveFileName,required"`
91-
Size int64 `json:"size,required,string"`
92-
Checksum string `json:"checksum,required"`
88+
OS string `json:"host,required"`
89+
URL string `json:"url,required"`
90+
ArchiveFileName string `json:"archiveFileName,required"`
91+
Size json.Number `json:"size,required"`
92+
Checksum string `json:"checksum,required"`
9393
}
9494

9595
// indexBoardName represents a single Board as written in package_index.json file.
@@ -130,11 +130,12 @@ func (inPlatformRelease indexPlatformRelease) extractPlatformIn(outPackage *core
130130
outPlatform.Name = inPlatformRelease.Name
131131
outPlatform.Category = inPlatformRelease.Category
132132

133+
size, _ := inPlatformRelease.Size.Int64()
133134
outPlatformRelease := outPlatform.GetOrCreateRelease(inPlatformRelease.Version)
134135
outPlatformRelease.Resource = &releases.DownloadResource{
135136
ArchiveFileName: inPlatformRelease.ArchiveFileName,
136137
Checksum: inPlatformRelease.Checksum,
137-
Size: inPlatformRelease.Size,
138+
Size: size,
138139
URL: inPlatformRelease.URL,
139140
CachePath: "packages",
140141
}
@@ -173,12 +174,13 @@ func (inToolRelease indexToolRelease) extractToolIn(outPackage *cores.Package) {
173174
func (inToolRelease indexToolRelease) extractFlavours() []*cores.Flavour {
174175
ret := make([]*cores.Flavour, len(inToolRelease.Systems))
175176
for i, flavour := range inToolRelease.Systems {
177+
size, _ := flavour.Size.Int64()
176178
ret[i] = &cores.Flavour{
177179
OS: flavour.OS,
178180
Resource: &releases.DownloadResource{
179181
ArchiveFileName: flavour.ArchiveFileName,
180182
Checksum: flavour.Checksum,
181-
Size: flavour.Size,
183+
Size: size,
182184
URL: flavour.URL,
183185
CachePath: "packages",
184186
},

0 commit comments

Comments
 (0)