Skip to content

Commit be1a93f

Browse files
committed
Merged InstallToolRelease function into the proper packagemanager method
1 parent e5bbf9d commit be1a93f

File tree

4 files changed

+26
-29
lines changed

4 files changed

+26
-29
lines changed

arduino/cores/packagemanager/install_uninstall.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ import (
2020
"fmt"
2121
"runtime"
2222

23+
"github.com/arduino/arduino-cli/arduino"
2324
"github.com/arduino/arduino-cli/arduino/cores"
2425
"github.com/arduino/arduino-cli/arduino/cores/packageindex"
2526
"github.com/arduino/arduino-cli/executils"
27+
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2628
"github.com/arduino/go-paths-helper"
2729
"github.com/pkg/errors"
2830
)
@@ -127,7 +129,18 @@ func (pm *PackageManager) UninstallPlatform(platformRelease *cores.PlatformRelea
127129
}
128130

129131
// InstallTool installs a specific release of a tool.
130-
func (pm *PackageManager) InstallTool(toolRelease *cores.ToolRelease) error {
132+
func (pm *PackageManager) InstallTool(toolRelease *cores.ToolRelease, taskCB rpc.TaskProgressCB) error {
133+
log := pm.Log.WithField("Tool", toolRelease)
134+
135+
if toolRelease.IsInstalled() {
136+
log.Warn("Tool already installed")
137+
taskCB(&rpc.TaskProgress{Name: tr("Tool %s already installed", toolRelease), Completed: true})
138+
return nil
139+
}
140+
141+
log.Info("Installing tool")
142+
taskCB(&rpc.TaskProgress{Name: tr("Installing %s", toolRelease)})
143+
131144
toolResource := toolRelease.GetCompatibleFlavour()
132145
if toolResource == nil {
133146
return fmt.Errorf(tr("no compatible version of %s tools found for the current os"), toolRelease.Tool.Name)
@@ -137,7 +150,15 @@ func (pm *PackageManager) InstallTool(toolRelease *cores.ToolRelease) error {
137150
"tools",
138151
toolRelease.Tool.Name,
139152
toolRelease.Version.String())
140-
return toolResource.Install(pm.DownloadDir, pm.tempDir, destDir)
153+
err := toolResource.Install(pm.DownloadDir, pm.tempDir, destDir)
154+
if err != nil {
155+
log.WithError(err).Warn("Cannot install tool")
156+
return &arduino.FailedInstallError{Message: tr("Cannot install tool %s", toolRelease), Cause: err}
157+
}
158+
log.Info("Tool installed")
159+
taskCB(&rpc.TaskProgress{Message: tr("%s installed", toolRelease), Completed: true})
160+
161+
return nil
141162
}
142163

143164
// IsManagedToolRelease returns true if the ToolRelease is managed by the PackageManager

commands/bundled_tools.go

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package commands
1717

1818
import (
19-
"github.com/arduino/arduino-cli/arduino"
2019
"github.com/arduino/arduino-cli/arduino/cores"
2120
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2221
"github.com/arduino/arduino-cli/arduino/httpclient"
@@ -31,26 +30,3 @@ func DownloadToolRelease(pm *packagemanager.PackageManager, toolRelease *cores.T
3130
}
3231
return pm.DownloadToolRelease(toolRelease, config, toolRelease.String(), downloadCB)
3332
}
34-
35-
// InstallToolRelease installs a ToolRelease
36-
func InstallToolRelease(pm *packagemanager.PackageManager, toolRelease *cores.ToolRelease, taskCB rpc.TaskProgressCB) error {
37-
log := pm.Log.WithField("Tool", toolRelease)
38-
39-
if toolRelease.IsInstalled() {
40-
log.Warn("Tool already installed")
41-
taskCB(&rpc.TaskProgress{Name: tr("Tool %s already installed", toolRelease), Completed: true})
42-
return nil
43-
}
44-
45-
log.Info("Installing tool")
46-
taskCB(&rpc.TaskProgress{Name: tr("Installing %s", toolRelease)})
47-
err := pm.InstallTool(toolRelease)
48-
if err != nil {
49-
log.WithError(err).Warn("Cannot install tool")
50-
return &arduino.FailedInstallError{Message: tr("Cannot install tool %s", toolRelease), Cause: err}
51-
}
52-
log.Info("Tool installed")
53-
taskCB(&rpc.TaskProgress{Message: tr("%s installed", toolRelease), Completed: true})
54-
55-
return nil
56-
}

commands/core/install.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func installPlatform(pm *packagemanager.PackageManager,
106106

107107
// Install tools first
108108
for _, tool := range toolsToInstall {
109-
if err := commands.InstallToolRelease(pm, tool, taskCB); err != nil {
109+
if err := pm.InstallTool(tool, taskCB); err != nil {
110110
return err
111111
}
112112
}

commands/instances.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ func (instance *CoreInstance) installToolIfMissing(tool *cores.ToolRelease, down
9999
return false, fmt.Errorf(tr("downloading %[1]s tool: %[2]s"), tool, err)
100100
}
101101
taskCB(&rpc.TaskProgress{Completed: true})
102-
if err := InstallToolRelease(instance.PackageManager, tool, taskCB); err != nil {
102+
if err := instance.PackageManager.InstallTool(tool, taskCB); err != nil {
103103
return false, fmt.Errorf(tr("installing %[1]s tool: %[2]s"), tool, err)
104104
}
105105
return true, nil
@@ -756,7 +756,7 @@ func Upgrade(ctx context.Context, req *rpc.UpgradeRequest, downloadCB rpc.Downlo
756756

757757
// Installs tools
758758
for _, tool := range toolsToInstall {
759-
if err := InstallToolRelease(pm, tool, taskCB); err != nil {
759+
if err := pm.InstallTool(tool, taskCB); err != nil {
760760
msg := tr("Error installing tool %s", tool)
761761
taskCB(&rpc.TaskProgress{Message: msg})
762762
return &arduino.FailedInstallError{Message: msg, Cause: err}

0 commit comments

Comments
 (0)