File tree Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -184,6 +184,19 @@ func (release *PlatformRelease) GetOrCreateBoard(boardID string) *Board {
184
184
return board
185
185
}
186
186
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
+
187
200
// RuntimeProperties returns the runtime properties for this PlatformRelease
188
201
func (release * PlatformRelease ) RuntimeProperties () properties.Map {
189
202
return properties.Map {
Original file line number Diff line number Diff line change @@ -46,3 +46,19 @@ func (pm *PackageManager) InstallTool(toolRelease *cores.ToolRelease) error {
46
46
toolRelease .Version .String ())
47
47
return toolResource .Install (pm .DownloadDir , pm .TempDir , destDir )
48
48
}
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
+ }
You can’t perform that action at this time.
0 commit comments