@@ -25,6 +25,7 @@ import (
25
25
"github.com/arduino/arduino-cli/commands/cmderrors"
26
26
"github.com/arduino/arduino-cli/internal/arduino/cores"
27
27
"github.com/arduino/arduino-cli/internal/arduino/cores/packageindex"
28
+
"github.com/arduino/arduino-cli/internal/arduino/resources"
28
29
"github.com/arduino/arduino-cli/internal/i18n"
29
30
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
30
31
"github.com/arduino/go-paths-helper"
@@ -40,6 +41,7 @@ func (pme *Explorer) DownloadAndInstallPlatformUpgrades(
40
41
taskCB rpc.TaskProgressCB,
41
42
skipPostInstall bool,
42
43
skipPreUninstall bool,
44
+
checks resources.IntegrityCheckMode,
43
45
) (*cores.PlatformRelease, error) {
44
46
if platformRef.PlatformVersion != nil {
45
47
return nil, &cmderrors.InvalidArgumentError{Message: i18n.Tr("Upgrade doesn't accept parameters with version")}
@@ -64,7 +66,7 @@ func (pme *Explorer) DownloadAndInstallPlatformUpgrades(
64
66
if err != nil {
65
67
return nil, &cmderrors.PlatformNotFoundError{Platform: platformRef.String()}
66
68
}
67
-
if err := pme.DownloadAndInstallPlatformAndTools(ctx, platformRelease, tools, downloadCB, taskCB, skipPostInstall, skipPreUninstall); err != nil {
69
+
if err := pme.DownloadAndInstallPlatformAndTools(ctx, platformRelease, tools, downloadCB, taskCB, skipPostInstall, skipPreUninstall, checks); err != nil {
68
70
return nil, err
69
71
}
70
72
@@ -78,7 +80,7 @@ func (pme *Explorer) DownloadAndInstallPlatformAndTools(
78
80
ctx context.Context,
79
81
platformRelease *cores.PlatformRelease, requiredTools []*cores.ToolRelease,
80
82
downloadCB rpc.DownloadProgressCB, taskCB rpc.TaskProgressCB,
81
-
skipPostInstall bool, skipPreUninstall bool) error {
83
+
skipPostInstall bool, skipPreUninstall bool, checks resources.IntegrityCheckMode) error {
82
84
log := pme.log.WithField("platform", platformRelease)
83
85
84
86
// Prerequisite checks before install
@@ -106,7 +108,7 @@ func (pme *Explorer) DownloadAndInstallPlatformAndTools(
106
108
107
109
// Install tools first
108
110
for _, tool := range toolsToInstall {
109
-
if err := pme.InstallTool(tool, taskCB, skipPostInstall); err != nil {
111
+
if err := pme.InstallTool(tool, taskCB, skipPostInstall, checks); err != nil {
110
112
return err
111
113
}
112
114
}
@@ -138,7 +140,7 @@ func (pme *Explorer) DownloadAndInstallPlatformAndTools(
138
140
}
139
141
140
142
// Install
141
-
if err := pme.InstallPlatform(platformRelease); err != nil {
143
+
if err := pme.InstallPlatform(platformRelease, checks); err != nil {
142
144
log.WithError(err).Error("Cannot install platform")
143
145
return &cmderrors.FailedInstallError{Message: i18n.Tr("Cannot install platform"), Cause: err}
144
146
}
@@ -196,18 +198,18 @@ func (pme *Explorer) DownloadAndInstallPlatformAndTools(
196
198
}
197
199
198
200
// InstallPlatform installs a specific release of a platform.
199
-
func (pme *Explorer) InstallPlatform(platformRelease *cores.PlatformRelease) error {
201
+
func (pme *Explorer) InstallPlatform(platformRelease *cores.PlatformRelease, checks resources.IntegrityCheckMode) error {
200
202
destDir := pme.PackagesDir.Join(
201
203
platformRelease.Platform.Package.Name,
202
204
"hardware",
203
205
platformRelease.Platform.Architecture,
204
206
platformRelease.Version.String())
205
-
return pme.InstallPlatformInDirectory(platformRelease, destDir)
207
+
return pme.InstallPlatformInDirectory(platformRelease, destDir, checks)
206
208
}
207
209
208
210
// InstallPlatformInDirectory installs a specific release of a platform in a specific directory.
209
-
func (pme *Explorer) InstallPlatformInDirectory(platformRelease *cores.PlatformRelease, destDir *paths.Path) error {
210
-
if err := platformRelease.Resource.Install(pme.DownloadDir, pme.tempDir, destDir); err != nil {
211
+
func (pme *Explorer) InstallPlatformInDirectory(platformRelease *cores.PlatformRelease, destDir *paths.Path, checks resources.IntegrityCheckMode) error {
212
+
if err := platformRelease.Resource.Install(pme.DownloadDir, pme.tempDir, destDir, checks); err != nil {
211
213
return errors.New(i18n.Tr("installing platform %[1]s: %[2]s", platformRelease, err))
212
214
}
213
215
if d, err := destDir.Abs(); err == nil {
@@ -320,7 +322,7 @@ func (pme *Explorer) UninstallPlatform(platformRelease *cores.PlatformRelease, t
320
322
}
321
323
322
324
// InstallTool installs a specific release of a tool.
323
-
func (pme *Explorer) InstallTool(toolRelease *cores.ToolRelease, taskCB rpc.TaskProgressCB, skipPostInstall bool) error {
325
+
func (pme *Explorer) InstallTool(toolRelease *cores.ToolRelease, taskCB rpc.TaskProgressCB, skipPostInstall bool, checks resources.IntegrityCheckMode) error {
324
326
log := pme.log.WithField("Tool", toolRelease)
325
327
326
328
if toolRelease.IsInstalled() {
@@ -343,7 +345,7 @@ func (pme *Explorer) InstallTool(toolRelease *cores.ToolRelease, taskCB rpc.Task
343
345
"tools",
344
346
toolRelease.Tool.Name,
345
347
toolRelease.Version.String())
346
-
err := toolResource.Install(pme.DownloadDir, pme.tempDir, destDir)
348
+
err := toolResource.Install(pme.DownloadDir, pme.tempDir, destDir, checks)
347
349
if err != nil {
348
350
log.WithError(err).Warn("Cannot install tool")
349
351
return &cmderrors.FailedInstallError{Message: i18n.Tr("Cannot install tool %s", toolRelease), Cause: err}
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4