A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/arduino/arduino-cli/commit/be841ffa6415c965e511941a07add0e0feea4b0c below:

Some bugfix in profile parsing

@@ -151,18 +151,8 @@ func (index Index) MergeIntoPackages(outPackages cores.Packages) {

151 151

// which in turn contains a single indexPlatformRelease converted from the one

152 152

// passed as argument

153 153

func IndexFromPlatformRelease(pr *cores.PlatformRelease) Index {

154 -

boards := []indexBoard{}

155 -

for _, manifest := range pr.BoardsManifest {

156 -

board := indexBoard{

157 -

Name: manifest.Name,

158 -

}

159 -

for _, id := range manifest.ID {

160 -

if id.USB != "" {

161 -

board.ID = []indexBoardID{{USB: id.USB}}

162 -

}

163 -

}

164 -

boards = append(boards, board)

165 -

}

154 +

// While enumerating the dependencies we also build a set of required packages.

155 +

requiredPackages := map[string]bool{}

166 156 167 157

tools := []indexToolDependency{}

168 158

for _, t := range pr.ToolDependencies {

@@ -171,6 +161,7 @@ func IndexFromPlatformRelease(pr *cores.PlatformRelease) Index {

171 161

Name: t.ToolName,

172 162

Version: t.ToolVersion,

173 163

})

164 +

requiredPackages[t.ToolPackager] = true

174 165

}

175 166 176 167

discoveries := []indexDiscoveryDependency{}

@@ -179,6 +170,7 @@ func IndexFromPlatformRelease(pr *cores.PlatformRelease) Index {

179 170

Packager: d.Packager,

180 171

Name: d.Name,

181 172

})

173 +

requiredPackages[d.Packager] = true

182 174

}

183 175 184 176

monitors := []indexMonitorDependency{}

@@ -187,58 +179,98 @@ func IndexFromPlatformRelease(pr *cores.PlatformRelease) Index {

187 179

Packager: m.Packager,

188 180

Name: m.Name,

189 181

})

182 +

requiredPackages[m.Packager] = true

190 183

}

191 184 192 -

packageTools := []*indexToolRelease{}

193 -

for name, tool := range pr.Platform.Package.Tools {

194 -

for _, toolRelease := range tool.Releases {

195 -

flavours := []indexToolReleaseFlavour{}

196 -

for _, flavour := range toolRelease.Flavors {

197 -

flavours = append(flavours, indexToolReleaseFlavour{

198 -

OS: flavour.OS,

199 -

URL: flavour.Resource.URL,

200 -

ArchiveFileName: flavour.Resource.ArchiveFileName,

201 -

Size: json.Number(fmt.Sprintf("%d", flavour.Resource.Size)),

202 -

Checksum: flavour.Resource.Checksum,

185 +

// Helper functions: those are needed to build an extract of the package_index.json

186 +

// that is compatible with the one used by the CLI.

187 +

// The installed.json is a simplified version of the cores.Packages

188 +

// and therefore we need to extract the relevant information from the

189 +

// cores.PlatformRelease and cores.Package structures.

190 +

extractIndexPackage := func(pack *cores.Package) *indexPackage {

191 +

packageTools := []*indexToolRelease{}

192 +

for name, tool := range pack.Tools {

193 +

for _, toolRelease := range tool.Releases {

194 +

flavours := []indexToolReleaseFlavour{}

195 +

for _, flavour := range toolRelease.Flavors {

196 +

flavours = append(flavours, indexToolReleaseFlavour{

197 +

OS: flavour.OS,

198 +

URL: flavour.Resource.URL,

199 +

ArchiveFileName: flavour.Resource.ArchiveFileName,

200 +

Size: json.Number(fmt.Sprintf("%d", flavour.Resource.Size)),

201 +

Checksum: flavour.Resource.Checksum,

202 +

})

203 +

}

204 +

packageTools = append(packageTools, &indexToolRelease{

205 +

Name: name,

206 +

Version: toolRelease.Version,

207 +

Systems: flavours,

203 208

})

204 209

}

205 -

packageTools = append(packageTools, &indexToolRelease{

206 -

Name: name,

207 -

Version: toolRelease.Version,

208 -

Systems: flavours,

209 -

})

210 +

}

211 +

return &indexPackage{

212 +

Name: pack.Name,

213 +

Maintainer: pack.Maintainer,

214 +

WebsiteURL: pack.WebsiteURL,

215 +

URL: pack.URL,

216 +

Email: pack.Email,

217 +

Platforms: nil,

218 +

Tools: packageTools,

219 +

Help: indexHelp{Online: pack.Help.Online},

220 +

}

221 +

}

222 +

extractIndexPlatformRelease := func(pr *cores.PlatformRelease) *indexPlatformRelease {

223 +

boards := []indexBoard{}

224 +

for _, manifest := range pr.BoardsManifest {

225 +

board := indexBoard{

226 +

Name: manifest.Name,

227 +

}

228 +

for _, id := range manifest.ID {

229 +

if id.USB != "" {

230 +

board.ID = []indexBoardID{{USB: id.USB}}

231 +

}

232 +

}

233 +

boards = append(boards, board)

234 +

}

235 + 236 +

return &indexPlatformRelease{

237 +

Name: pr.Name,

238 +

Architecture: pr.Platform.Architecture,

239 +

Version: pr.Version,

240 +

Deprecated: pr.Deprecated,

241 +

Category: pr.Category,

242 +

URL: pr.Resource.URL,

243 +

ArchiveFileName: pr.Resource.ArchiveFileName,

244 +

Checksum: pr.Resource.Checksum,

245 +

Size: json.Number(fmt.Sprintf("%d", pr.Resource.Size)),

246 +

Help: indexHelp{Online: pr.Help.Online},

247 +

Boards: boards,

248 +

ToolDependencies: nil,

249 +

DiscoveryDependencies: nil,

250 +

MonitorDependencies: nil,

251 +

}

252 +

}

253 + 254 +

mainPlatform := extractIndexPlatformRelease(pr)

255 +

mainPlatform.ToolDependencies = tools

256 +

mainPlatform.DiscoveryDependencies = discoveries

257 +

mainPlatform.MonitorDependencies = monitors

258 +

delete(requiredPackages, pr.Platform.Package.Name)

259 + 260 +

mainPackage := extractIndexPackage(pr.Platform.Package)

261 +

mainPackage.Platforms = []*indexPlatformRelease{mainPlatform}

262 + 263 +

packages := []*indexPackage{mainPackage}

264 +

for requiredPackageName := range requiredPackages {

265 +

requiredPackage, ok := pr.Platform.Package.Packages.GetPackage(requiredPackageName)

266 +

if ok {

267 +

packages = append(packages, extractIndexPackage(requiredPackage))

210 268

}

211 269

}

212 270 213 271

return Index{

214 272

IsTrusted: pr.IsTrusted,

215 -

Packages: []*indexPackage{

216 -

{

217 -

Name: pr.Platform.Package.Name,

218 -

Maintainer: pr.Platform.Package.Maintainer,

219 -

WebsiteURL: pr.Platform.Package.WebsiteURL,

220 -

URL: pr.Platform.Package.URL,

221 -

Email: pr.Platform.Package.Email,

222 -

Platforms: []*indexPlatformRelease{{

223 -

Name: pr.Name,

224 -

Architecture: pr.Platform.Architecture,

225 -

Version: pr.Version,

226 -

Deprecated: pr.Deprecated,

227 -

Category: pr.Category,

228 -

URL: pr.Resource.URL,

229 -

ArchiveFileName: pr.Resource.ArchiveFileName,

230 -

Checksum: pr.Resource.Checksum,

231 -

Size: json.Number(fmt.Sprintf("%d", pr.Resource.Size)),

232 -

Boards: boards,

233 -

Help: indexHelp{Online: pr.Help.Online},

234 -

ToolDependencies: tools,

235 -

DiscoveryDependencies: discoveries,

236 -

MonitorDependencies: monitors,

237 -

}},

238 -

Tools: packageTools,

239 -

Help: indexHelp{Online: pr.Platform.Package.Help.Online},

240 -

},

241 -

},

273 +

Packages: packages,

242 274

}

243 275

}

244 276

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4