Skip to content

Commit 928e534

Browse files
committed
Added function PlatformRelease.RequiresToolRelease
This function will be usefult for cleanup during uninstall
1 parent 50ebe37 commit 928e534

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

arduino/cores/cores.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,19 @@ func (release *PlatformRelease) GetOrCreateBoard(boardID string) *Board {
184184
return board
185185
}
186186

187+
// RequiresToolRelease returns true if the PlatformRelease requires the
188+
// toolReleased passed as parameter
189+
func (release *PlatformRelease) RequiresToolRelease(toolRelease *ToolRelease) bool {
190+
for _, toolDep := range release.Dependencies {
191+
if toolDep.ToolName == toolRelease.Tool.Name &&
192+
toolDep.ToolPackager == toolRelease.Tool.Package.Name &&
193+
toolDep.ToolVersion == toolRelease.Version {
194+
return true
195+
}
196+
}
197+
return false
198+
}
199+
187200
// RuntimeProperties returns the runtime properties for this PlatformRelease
188201
func (release *PlatformRelease) RuntimeProperties() properties.Map {
189202
return properties.Map{

arduino/cores/packagemanager/install_uninstall.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,19 @@ func (pm *PackageManager) InstallTool(toolRelease *cores.ToolRelease) error {
4646
toolRelease.Version.String())
4747
return toolResource.Install(pm.DownloadDir, pm.TempDir, destDir)
4848
}
49+
50+
// IsToolRequired returns true if any of the installed platforms requires the toolRelease
51+
// passed as parameter
52+
func (pm *PackageManager) IsToolRequired(toolRelease *cores.ToolRelease) bool {
53+
// Search in all installed platforms
54+
for _, targetPackage := range pm.packages.Packages {
55+
for _, platform := range targetPackage.Platforms {
56+
if platformRelease := platform.GetInstalled(); platformRelease != nil {
57+
if platformRelease.RequiresToolRelease(toolRelease) {
58+
return true
59+
}
60+
}
61+
}
62+
}
63+
return false
64+
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy