@@ -31,13 +31,14 @@ import (
31
31
)
32
32
33
33
// 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 {
35
36
// Load required platforms
36
37
var merr []error
37
38
var platformReleases []* cores.PlatformRelease
38
39
indexURLs := map [string ]* url.URL {}
39
40
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 {
41
42
merr = append (merr , fmt .Errorf ("%s: %w" , tr ("loading required platform %s" , platformRef ), err ))
42
43
logrus .WithField ("platform" , platformRef ).WithError (err ).Debugf ("Error loading platform for profile" )
43
44
} else {
@@ -51,7 +52,7 @@ func (pm *PackageManager) LoadHardwareForProfile(p *sketch.Profile) []error {
51
52
for _ , platformRelease := range platformReleases {
52
53
for _ , toolDep := range platformRelease .ToolDependencies {
53
54
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 {
55
56
merr = append (merr , fmt .Errorf ("%s: %w" , tr ("loading required tool %s" , toolDep ), err ))
56
57
logrus .WithField ("tool" , toolDep ).WithField ("index_url" , indexURL ).WithError (err ).Debugf ("Error loading tool for profile" )
57
58
} else {
@@ -63,7 +64,7 @@ func (pm *PackageManager) LoadHardwareForProfile(p *sketch.Profile) []error {
63
64
return merr
64
65
}
65
66
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 ) {
67
68
targetPackage := pm .Packages .GetOrCreatePackage (platformRef .Packager )
68
69
platform := targetPackage .GetOrCreatePlatform (platformRef .Architecture )
69
70
release := platform .GetOrCreateRelease (platformRef .Version )
@@ -127,7 +128,7 @@ func (pm *PackageManager) installMissingProfilePlatform(platformRef *sketch.Prof
127
128
return nil
128
129
}
129
130
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 {
131
132
targetPackage := pm .Packages .GetOrCreatePackage (toolRef .ToolPackager )
132
133
tool := targetPackage .GetOrCreateTool (toolRef .ToolName )
133
134
0 commit comments