@@ -31,13 +31,14 @@ import (
3131)
3232
3333// LoadHardwareForProfile load the hardware platforms for the given profile.
34- func (pm * PackageManager ) LoadHardwareForProfile (p * sketch.Profile ) []error {
34+ // If installMissing is true then possibly missing tools and platforms will be downloaded and installed.
35+ func (pm * PackageManager ) LoadHardwareForProfile (p * sketch.Profile , installMissing bool , downloadCB rpc.DownloadProgressCB , taskCB rpc.TaskProgressCB ) []error {
3536 // Load required platforms
3637 var merr []error
3738 var platformReleases []* cores.PlatformRelease
3839 indexURLs := map [string ]* url.URL {}
3940 for _ , platformRef := range p .Platforms {
40- if platformRelease , err := pm .loadProfilePlatform (platformRef ); err != nil {
41+ if platformRelease , err := pm .loadProfilePlatform (platformRef , installMissing , downloadCB , taskCB ); err != nil {
4142 merr = append (merr , fmt .Errorf ("%s: %w" , tr ("loading required platform %s" , platformRef ), err ))
4243 logrus .WithField ("platform" , platformRef ).WithError (err ).Debugf ("Error loading platform for profile" )
4344 } else {
@@ -51,7 +52,7 @@ func (pm *PackageManager) LoadHardwareForProfile(p *sketch.Profile) []error {
5152 for _ , platformRelease := range platformReleases {
5253 for _ , toolDep := range platformRelease .ToolDependencies {
5354 indexURL := indexURLs [toolDep .ToolPackager ]
54- if err := pm .loadProfileTool (toolDep , indexURL ); err != nil {
55+ if err := pm .loadProfileTool (toolDep , indexURL , installMissing , downloadCB , taskCB ); err != nil {
5556 merr = append (merr , fmt .Errorf ("%s: %w" , tr ("loading required tool %s" , toolDep ), err ))
5657 logrus .WithField ("tool" , toolDep ).WithField ("index_url" , indexURL ).WithError (err ).Debugf ("Error loading tool for profile" )
5758 } else {
@@ -63,7 +64,7 @@ func (pm *PackageManager) LoadHardwareForProfile(p *sketch.Profile) []error {
6364 return merr
6465}
6566
66- func (pm * PackageManager ) loadProfilePlatform (platformRef * sketch.ProfilePlatformReference ) (* cores.PlatformRelease , error ) {
67+ func (pm * PackageManager ) loadProfilePlatform (platformRef * sketch.ProfilePlatformReference , installMissing bool , downloadCB rpc. DownloadProgressCB , taskCB rpc. TaskProgressCB ) (* cores.PlatformRelease , error ) {
6768 targetPackage := pm .Packages .GetOrCreatePackage (platformRef .Packager )
6869 platform := targetPackage .GetOrCreatePlatform (platformRef .Architecture )
6970 release := platform .GetOrCreateRelease (platformRef .Version )
@@ -127,7 +128,7 @@ func (pm *PackageManager) installMissingProfilePlatform(platformRef *sketch.Prof
127128 return nil
128129}
129130
130- func (pm * PackageManager ) loadProfileTool (toolRef * cores.ToolDependency , indexURL * url.URL ) error {
131+ func (pm * PackageManager ) loadProfileTool (toolRef * cores.ToolDependency , indexURL * url.URL , installMissing bool , downloadCB rpc. DownloadProgressCB , taskCB rpc. TaskProgressCB ) error {
131132 targetPackage := pm .Packages .GetOrCreatePackage (toolRef .ToolPackager )
132133 tool := targetPackage .GetOrCreateTool (toolRef .ToolName )
133134
0 commit comments