File tree 1 file changed +27
-0
lines changed
arduino/cores/packagemanager
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 {
429
429
return boards
430
430
}
431
431
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
+
432
447
// FindToolsRequiredForBoard FIXMEDOC
433
448
func (pm * PackageManager ) FindToolsRequiredForBoard (board * cores.Board ) ([]* cores.ToolRelease , error ) {
434
449
pm .Log .Infof ("Searching tools required for board %s" , board )
@@ -478,3 +493,15 @@ func (pm *PackageManager) FindToolDependency(dep *cores.ToolDependency) *cores.T
478
493
}
479
494
return toolRelease
480
495
}
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