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 {
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
188201func (release * PlatformRelease ) RuntimeProperties () properties.Map {
189202 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 {
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+ }
You can’t perform that action at this time.
0 commit comments