File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
arduino/cores/packagemanager Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -429,6 +429,21 @@ func (pm *PackageManager) InstalledBoards() []*cores.Board {
429429 return boards
430430}
431431
432+ // GetTool searches for tool in all packages and platforms.
433+ func (pm * PackageManager ) GetTool (toolID string ) * cores.Tool {
434+ split := strings .Split (toolID , ":" )
435+ if len (split ) != 2 {
436+ return nil
437+ }
438+ if pack , ok := pm .Packages [split [0 ]]; ! ok {
439+ return nil
440+ } else if tool , ok := pack .Tools [split [1 ]]; ! ok {
441+ return nil
442+ } else {
443+ return tool
444+ }
445+ }
446+
432447// FindToolsRequiredForBoard FIXMEDOC
433448func (pm * PackageManager ) FindToolsRequiredForBoard (board * cores.Board ) ([]* cores.ToolRelease , error ) {
434449 pm .Log .Infof ("Searching tools required for board %s" , board )
@@ -478,3 +493,15 @@ func (pm *PackageManager) FindToolDependency(dep *cores.ToolDependency) *cores.T
478493 }
479494 return toolRelease
480495}
496+
497+ // FindDiscoveryDependency returns the ToolRelease referenced by the DiscoveryDepenency or nil if
498+ // the referenced discovery doesn't exists.
499+ func (pm * PackageManager ) FindDiscoveryDependency (discovery * cores.DiscoveryDependency ) * cores.ToolRelease {
500+ if pack := pm .Packages [discovery .Packager ]; pack == nil {
501+ return nil
502+ } else if toolRelease := pack .Tools [discovery .Name ]; toolRelease == nil {
503+ return nil
504+ } else {
505+ return toolRelease .GetLatestInstalled ()
506+ }
507+ }
You can’t perform that action at this time.
0 commit comments