Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 478205e

Browse files
committedOct 22, 2021
Handled package name change cause of errors move
1 parent cff44e6 commit 478205e

33 files changed

+235
-205
lines changed
 

‎cli/core/upgrade.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ import (
2121
"fmt"
2222
"os"
2323

24+
"github.com/arduino/arduino-cli/arduino"
2425
"github.com/arduino/arduino-cli/cli/arguments"
2526
"github.com/arduino/arduino-cli/cli/errorcodes"
2627
"github.com/arduino/arduino-cli/cli/feedback"
2728
"github.com/arduino/arduino-cli/cli/instance"
2829
"github.com/arduino/arduino-cli/cli/output"
29-
"github.com/arduino/arduino-cli/commands"
3030
"github.com/arduino/arduino-cli/commands/core"
3131
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
3232
"github.com/sirupsen/logrus"
@@ -97,7 +97,7 @@ func runUpgradeCommand(cmd *cobra.Command, args []string) {
9797
}
9898

9999
if _, err := core.PlatformUpgrade(context.Background(), r, output.ProgressBar(), output.TaskProgress()); err != nil {
100-
if errors.Is(err, &commands.PlatformAlreadyAtTheLatestVersionError{}) {
100+
if errors.Is(err, &arduino.PlatformAlreadyAtTheLatestVersionError{}) {
101101
feedback.Print(err.Error())
102102
continue
103103
}

‎commands/board/attach.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"strings"
2323
"time"
2424

25+
"github.com/arduino/arduino-cli/arduino"
2526
"github.com/arduino/arduino-cli/arduino/cores"
2627
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2728
"github.com/arduino/arduino-cli/arduino/sketch"
@@ -38,15 +39,15 @@ var tr = i18n.Tr
3839
func Attach(ctx context.Context, req *rpc.BoardAttachRequest, taskCB commands.TaskProgressCB) (*rpc.BoardAttachResponse, error) {
3940
pm := commands.GetPackageManager(req.GetInstance().GetId())
4041
if pm == nil {
41-
return nil, &commands.InvalidInstanceError{}
42+
return nil, &arduino.InvalidInstanceError{}
4243
}
4344
var sketchPath *paths.Path
4445
if req.GetSketchPath() != "" {
4546
sketchPath = paths.New(req.GetSketchPath())
4647
}
4748
sk, err := sketch.New(sketchPath)
4849
if err != nil {
49-
return nil, &commands.CantOpenSketchError{Cause: err}
50+
return nil, &arduino.CantOpenSketchError{Cause: err}
5051
}
5152

5253
boardURI := req.GetBoardUri()
@@ -62,7 +63,7 @@ func Attach(ctx context.Context, req *rpc.BoardAttachRequest, taskCB commands.Ta
6263
} else {
6364
deviceURI, err := url.Parse(boardURI)
6465
if err != nil {
65-
return nil, &commands.InvalidArgumentError{Message: tr("Invalid Device URL format"), Cause: err}
66+
return nil, &arduino.InvalidArgumentError{Message: tr("Invalid Device URL format"), Cause: err}
6667
}
6768

6869
var findBoardFunc func(*packagemanager.PackageManager, *discovery.Monitor, *url.URL) *cores.Board
@@ -72,7 +73,7 @@ func Attach(ctx context.Context, req *rpc.BoardAttachRequest, taskCB commands.Ta
7273
case "http", "https", "tcp", "udp":
7374
findBoardFunc = findNetworkConnectedBoard
7475
default:
75-
return nil, &commands.InvalidArgumentError{Message: tr("Invalid device port type provided")}
76+
return nil, &arduino.InvalidArgumentError{Message: tr("Invalid device port type provided")}
7677
}
7778

7879
duration, err := time.ParseDuration(req.GetSearchTimeout())
@@ -88,7 +89,7 @@ func Attach(ctx context.Context, req *rpc.BoardAttachRequest, taskCB commands.Ta
8889
// TODO: Handle the case when no board is found.
8990
board := findBoardFunc(pm, monitor, deviceURI)
9091
if board == nil {
91-
return nil, &commands.InvalidArgumentError{Message: tr("No supported board found at %s", deviceURI)}
92+
return nil, &arduino.InvalidArgumentError{Message: tr("No supported board found at %s", deviceURI)}
9293
}
9394
taskCB(&rpc.TaskProgress{Name: tr("Board found: %s", board.Name())})
9495

@@ -103,7 +104,7 @@ func Attach(ctx context.Context, req *rpc.BoardAttachRequest, taskCB commands.Ta
103104

104105
err = sk.ExportMetadata()
105106
if err != nil {
106-
return nil, &commands.PermissionDeniedError{Message: tr("Cannot export sketch metadata"), Cause: err}
107+
return nil, &arduino.PermissionDeniedError{Message: tr("Cannot export sketch metadata"), Cause: err}
107108
}
108109
taskCB(&rpc.TaskProgress{Name: tr("Selected fqbn: %s", sk.Metadata.CPU.Fqbn), Completed: true})
109110
return &rpc.BoardAttachResponse{}, nil

‎commands/board/details.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package board
1818
import (
1919
"context"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
"github.com/arduino/arduino-cli/arduino/cores"
2223
"github.com/arduino/arduino-cli/commands"
2324
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -28,17 +29,17 @@ import (
2829
func Details(ctx context.Context, req *rpc.BoardDetailsRequest) (*rpc.BoardDetailsResponse, error) {
2930
pm := commands.GetPackageManager(req.GetInstance().GetId())
3031
if pm == nil {
31-
return nil, &commands.InvalidInstanceError{}
32+
return nil, &arduino.InvalidInstanceError{}
3233
}
3334

3435
fqbn, err := cores.ParseFQBN(req.GetFqbn())
3536
if err != nil {
36-
return nil, &commands.InvalidFQBNError{Cause: err}
37+
return nil, &arduino.InvalidFQBNError{Cause: err}
3738
}
3839

3940
boardPackage, boardPlatform, board, boardProperties, boardRefPlatform, err := pm.ResolveFQBN(fqbn)
4041
if err != nil {
41-
return nil, &commands.UnknownFQBNError{Cause: err}
42+
return nil, &arduino.UnknownFQBNError{Cause: err}
4243
}
4344

4445
details := &rpc.BoardDetailsResponse{}

‎commands/board/list.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"strings"
2626
"time"
2727

28+
"github.com/arduino/arduino-cli/arduino"
2829
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2930
"github.com/arduino/arduino-cli/arduino/discovery"
3031
"github.com/arduino/arduino-cli/commands"
@@ -143,7 +144,7 @@ func identify(pm *packagemanager.PackageManager, port *discovery.Port) ([]*rpc.B
143144
logrus.Debug("Board not recognized")
144145
} else if err != nil {
145146
// this is bad, bail out
146-
return nil, &commands.UnavailableError{Message: tr("Error getting board info from Arduino Cloud")}
147+
return nil, &arduino.UnavailableError{Message: tr("Error getting board info from Arduino Cloud")}
147148
}
148149

149150
// add a DetectedPort entry in any case: the `Boards` field will
@@ -188,15 +189,15 @@ func List(req *rpc.BoardListRequest) (r []*rpc.DetectedPort, e error) {
188189

189190
pm := commands.GetPackageManager(req.GetInstance().Id)
190191
if pm == nil {
191-
return nil, &commands.InvalidInstanceError{}
192+
return nil, &arduino.InvalidInstanceError{}
192193
}
193194

194195
dm := pm.DiscoveryManager()
195196
if errs := dm.RunAll(); len(errs) > 0 {
196-
return nil, &commands.UnavailableError{Message: tr("Error starting board discoveries"), Cause: fmt.Errorf("%v", errs)}
197+
return nil, &arduino.UnavailableError{Message: tr("Error starting board discoveries"), Cause: fmt.Errorf("%v", errs)}
197198
}
198199
if errs := dm.StartAll(); len(errs) > 0 {
199-
return nil, &commands.UnavailableError{Message: tr("Error starting board discoveries"), Cause: fmt.Errorf("%v", errs)}
200+
return nil, &arduino.UnavailableError{Message: tr("Error starting board discoveries"), Cause: fmt.Errorf("%v", errs)}
200201
}
201202
defer func() {
202203
if errs := dm.StopAll(); len(errs) > 0 {
@@ -208,7 +209,7 @@ func List(req *rpc.BoardListRequest) (r []*rpc.DetectedPort, e error) {
208209
retVal := []*rpc.DetectedPort{}
209210
ports, errs := pm.DiscoveryManager().List()
210211
if len(errs) > 0 {
211-
return nil, &commands.UnavailableError{Message: tr("Error getting board list"), Cause: fmt.Errorf("%v", errs)}
212+
return nil, &arduino.UnavailableError{Message: tr("Error getting board list"), Cause: fmt.Errorf("%v", errs)}
212213
}
213214
for _, port := range ports {
214215
boards, err := identify(pm, port)
@@ -237,7 +238,7 @@ func Watch(instanceID int32, interrupt <-chan bool) (<-chan *rpc.BoardListWatchR
237238
runErrs := dm.RunAll()
238239
if len(runErrs) == len(dm.IDs()) {
239240
// All discoveries failed to run, we can't do anything
240-
return nil, &commands.UnavailableError{Message: tr("Error starting board discoveries"), Cause: fmt.Errorf("%v", runErrs)}
241+
return nil, &arduino.UnavailableError{Message: tr("Error starting board discoveries"), Cause: fmt.Errorf("%v", runErrs)}
241242
}
242243

243244
eventsChan, errs := dm.StartSyncAll()

‎commands/board/listall.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"context"
2020
"strings"
2121

22+
"github.com/arduino/arduino-cli/arduino"
2223
"github.com/arduino/arduino-cli/arduino/utils"
2324
"github.com/arduino/arduino-cli/commands"
2425
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -28,7 +29,7 @@ import (
2829
func ListAll(ctx context.Context, req *rpc.BoardListAllRequest) (*rpc.BoardListAllResponse, error) {
2930
pm := commands.GetPackageManager(req.GetInstance().GetId())
3031
if pm == nil {
31-
return nil, &commands.InvalidInstanceError{}
32+
return nil, &arduino.InvalidInstanceError{}
3233
}
3334

3435
searchArgs := strings.Join(req.GetSearchArgs(), " ")

‎commands/board/search.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"sort"
2121
"strings"
2222

23+
"github.com/arduino/arduino-cli/arduino"
2324
"github.com/arduino/arduino-cli/arduino/utils"
2425
"github.com/arduino/arduino-cli/commands"
2526
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -32,7 +33,7 @@ import (
3233
func Search(ctx context.Context, req *rpc.BoardSearchRequest) (*rpc.BoardSearchResponse, error) {
3334
pm := commands.GetPackageManager(req.GetInstance().GetId())
3435
if pm == nil {
35-
return nil, &commands.InvalidInstanceError{}
36+
return nil, &arduino.InvalidInstanceError{}
3637
}
3738

3839
res := &rpc.BoardSearchResponse{Boards: []*rpc.BoardListItem{}}

‎commands/bundled_tools.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package commands
1717

1818
import (
19+
"github.com/arduino/arduino-cli/arduino"
1920
"github.com/arduino/arduino-cli/arduino/cores"
2021
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2122
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -49,7 +50,7 @@ func InstallToolRelease(pm *packagemanager.PackageManager, toolRelease *cores.To
4950
err := pm.InstallTool(toolRelease)
5051
if err != nil {
5152
log.WithError(err).Warn("Cannot install tool")
52-
return &FailedInstallError{Message: tr("Cannot install tool %s", toolRelease), Cause: err}
53+
return &arduino.FailedInstallError{Message: tr("Cannot install tool %s", toolRelease), Cause: err}
5354
}
5455
log.Info("Tool installed")
5556
taskCB(&rpc.TaskProgress{Message: tr("%s installed", toolRelease), Completed: true})

‎commands/compile/compile.go

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,14 @@ package compile
1717

1818
import (
1919
"context"
20-
"errors"
20+
"fmt"
2121
"io"
2222
"path/filepath"
2323
"sort"
2424
"strconv"
2525
"strings"
2626

27+
"github.com/arduino/arduino-cli/arduino"
2728
bldr "github.com/arduino/arduino-cli/arduino/builder"
2829
"github.com/arduino/arduino-cli/arduino/cores"
2930
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
@@ -89,29 +90,29 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
8990

9091
pm := commands.GetPackageManager(req.GetInstance().GetId())
9192
if pm == nil {
92-
return nil, &commands.InvalidInstanceError{}
93+
return nil, &arduino.InvalidInstanceError{}
9394
}
9495

9596
logrus.Tracef("Compile %s for %s started", req.GetSketchPath(), req.GetFqbn())
9697
if req.GetSketchPath() == "" {
97-
return nil, &commands.MissingSketchPathError{}
98+
return nil, &arduino.MissingSketchPathError{}
9899
}
99100
sketchPath := paths.New(req.GetSketchPath())
100101
sk, err := sketch.New(sketchPath)
101102
if err != nil {
102-
return nil, &commands.CantOpenSketchError{Cause: err}
103+
return nil, &arduino.CantOpenSketchError{Cause: err}
103104
}
104105

105106
fqbnIn := req.GetFqbn()
106107
if fqbnIn == "" && sk != nil && sk.Metadata != nil {
107108
fqbnIn = sk.Metadata.CPU.Fqbn
108109
}
109110
if fqbnIn == "" {
110-
return nil, &commands.MissingFQBNError{}
111+
return nil, &arduino.MissingFQBNError{}
111112
}
112113
fqbn, err := cores.ParseFQBN(fqbnIn)
113114
if err != nil {
114-
return nil, &commands.InvalidFQBNError{Cause: err}
115+
return nil, &arduino.InvalidFQBNError{Cause: err}
115116
}
116117

117118
targetPlatform := pm.FindPlatform(&packagemanager.PlatformReference{
@@ -124,7 +125,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
124125
// "\"%[1]s:%[2]s\" platform is not installed, please install it by running \""+
125126
// version.GetAppName()+" core install %[1]s:%[2]s\".", fqbn.Package, fqbn.PlatformArch)
126127
// feedback.Error(errorMessage)
127-
return nil, &commands.PlatformNotFound{Platform: targetPlatform.String(), Cause: errors.New(tr("platform not installed"))}
128+
return nil, &arduino.PlatformNotFound{Platform: targetPlatform.String(), Cause: fmt.Errorf(tr("platform not installed"))}
128129
}
129130

130131
builderCtx := &types.Context{}
@@ -147,7 +148,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
147148
builderCtx.BuildPath = paths.New(req.GetBuildPath()).Canonical()
148149
}
149150
if err = builderCtx.BuildPath.MkdirAll(); err != nil {
150-
return nil, &commands.PermissionDeniedError{Message: tr("Cannot create build directory"), Cause: err}
151+
return nil, &arduino.PermissionDeniedError{Message: tr("Cannot create build directory"), Cause: err}
151152
}
152153
builderCtx.CompilationDatabase = bldr.NewCompilationDatabase(
153154
builderCtx.BuildPath.Join("compile_commands.json"),
@@ -177,7 +178,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
177178
builderCtx.BuildCachePath = paths.New(req.GetBuildCachePath())
178179
err = builderCtx.BuildCachePath.MkdirAll()
179180
if err != nil {
180-
return nil, &commands.PermissionDeniedError{Message: tr("Cannot create build cache directory"), Cause: err}
181+
return nil, &arduino.PermissionDeniedError{Message: tr("Cannot create build cache directory"), Cause: err}
181182
}
182183
}
183184

@@ -222,20 +223,20 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
222223
if req.GetShowProperties() {
223224
compileErr := builder.RunParseHardwareAndDumpBuildProperties(builderCtx)
224225
if compileErr != nil {
225-
compileErr = &commands.CompileFailedError{Message: err.Error()}
226+
compileErr = &arduino.CompileFailedError{Message: err.Error()}
226227
}
227228
return r, compileErr
228229
} else if req.GetPreprocess() {
229230
compileErr := builder.RunPreprocess(builderCtx)
230231
if compileErr != nil {
231-
compileErr = &commands.CompileFailedError{Message: err.Error()}
232+
compileErr = &arduino.CompileFailedError{Message: err.Error()}
232233
}
233234
return r, compileErr
234235
}
235236

236237
// if it's a regular build, go on...
237238
if err := builder.RunBuilder(builderCtx); err != nil {
238-
return r, &commands.CompileFailedError{Message: err.Error()}
239+
return r, &arduino.CompileFailedError{Message: err.Error()}
239240
}
240241

241242
// If the export directory is set we assume you want to export the binaries
@@ -257,17 +258,17 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
257258
}
258259
logrus.WithField("path", exportPath).Trace("Saving sketch to export path.")
259260
if err := exportPath.MkdirAll(); err != nil {
260-
return r, &commands.PermissionDeniedError{Message: tr("Error creating output dir"), Cause: err}
261+
return r, &arduino.PermissionDeniedError{Message: tr("Error creating output dir"), Cause: err}
261262
}
262263

263264
// Copy all "sketch.ino.*" artifacts to the export directory
264265
baseName, ok := builderCtx.BuildProperties.GetOk("build.project_name") // == "sketch.ino"
265266
if !ok {
266-
return r, &commands.MissingPlatformPropertyError{Property: "build.project_name"}
267+
return r, &arduino.MissingPlatformPropertyError{Property: "build.project_name"}
267268
}
268269
buildFiles, err := builderCtx.BuildPath.ReadDir()
269270
if err != nil {
270-
return r, &commands.PermissionDeniedError{Message: tr("Error reading build directory"), Cause: err}
271+
return r, &arduino.PermissionDeniedError{Message: tr("Error reading build directory"), Cause: err}
271272
}
272273
buildFiles.FilterPrefix(baseName)
273274
for _, buildFile := range buildFiles {
@@ -277,7 +278,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
277278
WithField("dest", exportedFile).
278279
Trace("Copying artifact.")
279280
if err = buildFile.CopyTo(exportedFile); err != nil {
280-
return r, &commands.PermissionDeniedError{Message: tr("Error copying output file %s", buildFile), Cause: err}
281+
return r, &arduino.PermissionDeniedError{Message: tr("Error copying output file %s", buildFile), Cause: err}
281282
}
282283
}
283284
}
@@ -286,7 +287,7 @@ func Compile(ctx context.Context, req *rpc.CompileRequest, outStream, errStream
286287
for _, lib := range builderCtx.ImportedLibraries {
287288
rpcLib, err := lib.ToRPCLibrary()
288289
if err != nil {
289-
return r, &commands.PermissionDeniedError{Message: tr("Error getting information for library %s", lib.Name), Cause: err}
290+
return r, &arduino.PermissionDeniedError{Message: tr("Error getting information for library %s", lib.Name), Cause: err}
290291
}
291292
importedLibs = append(importedLibs, rpcLib)
292293
}

‎commands/core/download.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"context"
2020
"errors"
2121

22+
"github.com/arduino/arduino-cli/arduino"
2223
"github.com/arduino/arduino-cli/arduino/cores"
2324
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2425
"github.com/arduino/arduino-cli/commands"
@@ -32,12 +33,12 @@ var tr = i18n.Tr
3233
func PlatformDownload(ctx context.Context, req *rpc.PlatformDownloadRequest, downloadCB commands.DownloadProgressCB) (*rpc.PlatformDownloadResponse, error) {
3334
pm := commands.GetPackageManager(req.GetInstance().GetId())
3435
if pm == nil {
35-
return nil, &commands.InvalidInstanceError{}
36+
return nil, &arduino.InvalidInstanceError{}
3637
}
3738

3839
version, err := commands.ParseVersion(req)
3940
if err != nil {
40-
return nil, &commands.InvalidVersionError{Cause: err}
41+
return nil, &arduino.InvalidVersionError{Cause: err}
4142
}
4243

4344
ref := &packagemanager.PlatformReference{
@@ -47,7 +48,7 @@ func PlatformDownload(ctx context.Context, req *rpc.PlatformDownloadRequest, dow
4748
}
4849
platform, tools, err := pm.FindPlatformReleaseDependencies(ref)
4950
if err != nil {
50-
return nil, &commands.PlatformNotFound{Platform: ref.String(), Cause: err}
51+
return nil, &arduino.PlatformNotFound{Platform: ref.String(), Cause: err}
5152
}
5253

5354
if err := downloadPlatform(pm, platform, downloadCB); err != nil {
@@ -67,25 +68,25 @@ func downloadPlatform(pm *packagemanager.PackageManager, platformRelease *cores.
6768
// Download platform
6869
config, err := commands.GetDownloaderConfig()
6970
if err != nil {
70-
return &commands.FailedDownloadError{Message: tr("Error downloading platform %s", platformRelease), Cause: err}
71+
return &arduino.FailedDownloadError{Message: tr("Error downloading platform %s", platformRelease), Cause: err}
7172
}
7273
resp, err := pm.DownloadPlatformRelease(platformRelease, config)
7374
if err != nil {
74-
return &commands.FailedDownloadError{Message: tr("Error downloading platform %s", platformRelease), Cause: err}
75+
return &arduino.FailedDownloadError{Message: tr("Error downloading platform %s", platformRelease), Cause: err}
7576
}
7677
return commands.Download(resp, platformRelease.String(), downloadCB)
7778
}
7879

7980
func downloadTool(pm *packagemanager.PackageManager, tool *cores.ToolRelease, downloadCB commands.DownloadProgressCB) error {
8081
// Check if tool has a flavor available for the current OS
8182
if tool.GetCompatibleFlavour() == nil {
82-
return &commands.FailedDownloadError{
83+
return &arduino.FailedDownloadError{
8384
Message: tr("Error downloading tool %s", tool),
8485
Cause: errors.New(tr("no versions available for the current OS", tool))}
8586
}
8687

8788
if err := commands.DownloadToolRelease(pm, tool, downloadCB); err != nil {
88-
return &commands.FailedDownloadError{Message: tr("Error downloading tool %s", tool), Cause: err}
89+
return &arduino.FailedDownloadError{Message: tr("Error downloading tool %s", tool), Cause: err}
8990
}
9091

9192
return nil

‎commands/core/install.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package core
1818
import (
1919
"context"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
"github.com/arduino/arduino-cli/arduino/cores"
2223
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2324
"github.com/arduino/arduino-cli/commands"
@@ -30,12 +31,12 @@ func PlatformInstall(ctx context.Context, req *rpc.PlatformInstallRequest,
3031

3132
pm := commands.GetPackageManager(req.GetInstance().GetId())
3233
if pm == nil {
33-
return nil, &commands.InvalidInstanceError{}
34+
return nil, &arduino.InvalidInstanceError{}
3435
}
3536

3637
version, err := commands.ParseVersion(req)
3738
if err != nil {
38-
return nil, &commands.InvalidVersionError{Cause: err}
39+
return nil, &arduino.InvalidVersionError{Cause: err}
3940
}
4041

4142
ref := &packagemanager.PlatformReference{
@@ -45,7 +46,7 @@ func PlatformInstall(ctx context.Context, req *rpc.PlatformInstallRequest,
4546
}
4647
platform, tools, err := pm.FindPlatformReleaseDependencies(ref)
4748
if err != nil {
48-
return nil, &commands.PlatformNotFound{Platform: ref.String(), Cause: err}
49+
return nil, &arduino.PlatformNotFound{Platform: ref.String(), Cause: err}
4950
}
5051

5152
err = installPlatform(pm, platform, tools, downloadCB, taskCB, req.GetSkipPostInstall())
@@ -123,14 +124,14 @@ func installPlatform(pm *packagemanager.PackageManager,
123124
var err error
124125
_, installedTools, err = pm.FindPlatformReleaseDependencies(platformRef)
125126
if err != nil {
126-
return &commands.NotFoundError{Message: tr("Can't find dependencies for platform %s", platformRef), Cause: err}
127+
return &arduino.NotFoundError{Message: tr("Can't find dependencies for platform %s", platformRef), Cause: err}
127128
}
128129
}
129130

130131
// Install
131132
if err := pm.InstallPlatform(platformRelease); err != nil {
132133
log.WithError(err).Error("Cannot install platform")
133-
return &commands.FailedInstallError{Message: tr("Cannot install platform"), Cause: err}
134+
return &arduino.FailedInstallError{Message: tr("Cannot install platform"), Cause: err}
134135
}
135136

136137
// If upgrading remove previous release
@@ -148,7 +149,7 @@ func installPlatform(pm *packagemanager.PackageManager,
148149
taskCB(&rpc.TaskProgress{Message: tr("Error rolling-back changes: %s", err)})
149150
}
150151

151-
return &commands.FailedInstallError{Message: tr("Cannot upgrade platform"), Cause: uninstallErr}
152+
return &arduino.FailedInstallError{Message: tr("Cannot upgrade platform"), Cause: uninstallErr}
152153
}
153154

154155
// Uninstall unused tools

‎commands/core/list.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@
1616
package core
1717

1818
import (
19-
"errors"
19+
"fmt"
2020
"sort"
2121
"strings"
2222

23+
"github.com/arduino/arduino-cli/arduino"
2324
"github.com/arduino/arduino-cli/commands"
2425
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2526
)
@@ -29,7 +30,7 @@ import (
2930
func GetPlatforms(req *rpc.PlatformListRequest) ([]*rpc.Platform, error) {
3031
packageManager := commands.GetPackageManager(req.GetInstance().Id)
3132
if packageManager == nil {
32-
return nil, &commands.InvalidInstanceError{}
33+
return nil, &arduino.InvalidInstanceError{}
3334
}
3435

3536
res := []*rpc.Platform{}
@@ -54,7 +55,7 @@ func GetPlatforms(req *rpc.PlatformListRequest) ([]*rpc.Platform, error) {
5455
if platformRelease != nil {
5556
latest := platform.GetLatestRelease()
5657
if latest == nil {
57-
return nil, &commands.PlatformNotFound{Platform: platform.String(), Cause: errors.New(tr("the platform has no releases"))}
58+
return nil, &arduino.PlatformNotFound{Platform: platform.String(), Cause: fmt.Errorf(tr("the platform has no releases"))}
5859
}
5960

6061
if req.UpdatableOnly {

‎commands/core/search.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"sort"
2121
"strings"
2222

23+
"github.com/arduino/arduino-cli/arduino"
2324
"github.com/arduino/arduino-cli/arduino/cores"
2425
"github.com/arduino/arduino-cli/arduino/utils"
2526
"github.com/arduino/arduino-cli/commands"
@@ -32,7 +33,7 @@ func PlatformSearch(req *rpc.PlatformSearchRequest) (*rpc.PlatformSearchResponse
3233
allVersions := req.AllVersions
3334
pm := commands.GetPackageManager(req.Instance.Id)
3435
if pm == nil {
35-
return nil, &commands.InvalidInstanceError{}
36+
return nil, &arduino.InvalidInstanceError{}
3637
}
3738

3839
res := []*cores.PlatformRelease{}

‎commands/core/uninstall.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package core
1818
import (
1919
"context"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
"github.com/arduino/arduino-cli/arduino/cores"
2223
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2324
"github.com/arduino/arduino-cli/commands"
@@ -28,7 +29,7 @@ import (
2829
func PlatformUninstall(ctx context.Context, req *rpc.PlatformUninstallRequest, taskCB commands.TaskProgressCB) (*rpc.PlatformUninstallResponse, error) {
2930
pm := commands.GetPackageManager(req.GetInstance().GetId())
3031
if pm == nil {
31-
return nil, &commands.InvalidInstanceError{}
32+
return nil, &arduino.InvalidInstanceError{}
3233
}
3334

3435
ref := &packagemanager.PlatformReference{
@@ -38,18 +39,18 @@ func PlatformUninstall(ctx context.Context, req *rpc.PlatformUninstallRequest, t
3839
if ref.PlatformVersion == nil {
3940
platform := pm.FindPlatform(ref)
4041
if platform == nil {
41-
return nil, &commands.PlatformNotFound{Platform: ref.String()}
42+
return nil, &arduino.PlatformNotFound{Platform: ref.String()}
4243
}
4344
platformRelease := pm.GetInstalledPlatformRelease(platform)
4445
if platformRelease == nil {
45-
return nil, &commands.PlatformNotFound{Platform: ref.String()}
46+
return nil, &arduino.PlatformNotFound{Platform: ref.String()}
4647
}
4748
ref.PlatformVersion = platformRelease.Version
4849
}
4950

5051
platform, tools, err := pm.FindPlatformReleaseDependencies(ref)
5152
if err != nil {
52-
return nil, &commands.NotFoundError{Message: tr("Can't find dependencies for platform %s", ref), Cause: err}
53+
return nil, &arduino.NotFoundError{Message: tr("Can't find dependencies for platform %s", ref), Cause: err}
5354
}
5455

5556
if err := uninstallPlatformRelease(pm, platform, taskCB); err != nil {
@@ -77,7 +78,7 @@ func uninstallPlatformRelease(pm *packagemanager.PackageManager, platformRelease
7778

7879
if err := pm.UninstallPlatform(platformRelease); err != nil {
7980
log.WithError(err).Error("Error uninstalling")
80-
return &commands.FailedUninstallError{Message: tr("Error uninstalling platform %s", platformRelease), Cause: err}
81+
return &arduino.FailedUninstallError{Message: tr("Error uninstalling platform %s", platformRelease), Cause: err}
8182
}
8283

8384
log.Info("Platform uninstalled")
@@ -93,7 +94,7 @@ func uninstallToolRelease(pm *packagemanager.PackageManager, toolRelease *cores.
9394

9495
if err := pm.UninstallTool(toolRelease); err != nil {
9596
log.WithError(err).Error("Error uninstalling")
96-
return &commands.FailedUninstallError{Message: tr("Error uninstalling tool %s", toolRelease), Cause: err}
97+
return &arduino.FailedUninstallError{Message: tr("Error uninstalling tool %s", toolRelease), Cause: err}
9798
}
9899

99100
log.Info("Tool uninstalled")

‎commands/core/upgrade.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package core
1818
import (
1919
"context"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2223
"github.com/arduino/arduino-cli/commands"
2324
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -29,7 +30,7 @@ func PlatformUpgrade(ctx context.Context, req *rpc.PlatformUpgradeRequest,
2930

3031
pm := commands.GetPackageManager(req.GetInstance().GetId())
3132
if pm == nil {
32-
return nil, &commands.InvalidInstanceError{}
33+
return nil, &arduino.InvalidInstanceError{}
3334
}
3435

3536
// Extract all PlatformReference to platforms that have updates
@@ -51,27 +52,27 @@ func PlatformUpgrade(ctx context.Context, req *rpc.PlatformUpgradeRequest,
5152
func upgradePlatform(pm *packagemanager.PackageManager, platformRef *packagemanager.PlatformReference,
5253
downloadCB commands.DownloadProgressCB, taskCB commands.TaskProgressCB, skipPostInstall bool) error {
5354
if platformRef.PlatformVersion != nil {
54-
return &commands.InvalidArgumentError{Message: tr("Upgrade doesn't accept parameters with version")}
55+
return &arduino.InvalidArgumentError{Message: tr("Upgrade doesn't accept parameters with version")}
5556
}
5657

5758
// Search the latest version for all specified platforms
5859
platform := pm.FindPlatform(platformRef)
5960
if platform == nil {
60-
return &commands.PlatformNotFound{Platform: platformRef.String()}
61+
return &arduino.PlatformNotFound{Platform: platformRef.String()}
6162
}
6263
installed := pm.GetInstalledPlatformRelease(platform)
6364
if installed == nil {
64-
return &commands.PlatformNotFound{Platform: platformRef.String()}
65+
return &arduino.PlatformNotFound{Platform: platformRef.String()}
6566
}
6667
latest := platform.GetLatestRelease()
6768
if !latest.Version.GreaterThan(installed.Version) {
68-
return &commands.PlatformAlreadyAtTheLatestVersionError{}
69+
return &arduino.PlatformAlreadyAtTheLatestVersionError{}
6970
}
7071
platformRef.PlatformVersion = latest.Version
7172

7273
platformRelease, tools, err := pm.FindPlatformReleaseDependencies(platformRef)
7374
if err != nil {
74-
return &commands.PlatformNotFound{Platform: platformRef.String()}
75+
return &arduino.PlatformNotFound{Platform: platformRef.String()}
7576
}
7677
if err := installPlatform(pm, platformRelease, tools, downloadCB, taskCB, skipPostInstall); err != nil {
7778
return err

‎commands/daemon/daemon.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"fmt"
2222
"io"
2323

24+
"github.com/arduino/arduino-cli/arduino"
2425
"github.com/arduino/arduino-cli/arduino/utils"
2526
"github.com/arduino/arduino-cli/commands"
2627
"github.com/arduino/arduino-cli/commands/board"
@@ -51,7 +52,7 @@ func convertErrorToRPCStatus(err error) error {
5152
if err == nil {
5253
return nil
5354
}
54-
if cmdErr, ok := err.(commands.CommandError); ok {
55+
if cmdErr, ok := err.(arduino.CommandError); ok {
5556
return cmdErr.ToRPCStatus().Err()
5657
}
5758
return err

‎commands/debug/debug.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"runtime"
2525
"time"
2626

27+
"github.com/arduino/arduino-cli/arduino"
2728
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2829
"github.com/arduino/arduino-cli/commands"
2930
"github.com/arduino/arduino-cli/executils"
@@ -63,7 +64,7 @@ func Debug(ctx context.Context, req *dbg.DebugConfigRequest, inStream io.Reader,
6364

6465
cmd, err := executils.NewProcess(commandLine...)
6566
if err != nil {
66-
return nil, &commands.FailedDebugError{Message: tr("Cannot execute debug tool"), Cause: err}
67+
return nil, &arduino.FailedDebugError{Message: tr("Cannot execute debug tool"), Cause: err}
6768
}
6869

6970
// Get stdIn pipe from tool
@@ -130,7 +131,7 @@ func getCommandLine(req *dbg.DebugConfigRequest, pm *packagemanager.PackageManag
130131
}
131132
gdbPath = paths.New(debugInfo.ToolchainPath).Join(gdbexecutable)
132133
default:
133-
return nil, &commands.FailedDebugError{Message: tr("Toolchain '%s' is not supported", debugInfo.GetToolchain())}
134+
return nil, &arduino.FailedDebugError{Message: tr("Toolchain '%s' is not supported", debugInfo.GetToolchain())}
134135
}
135136
add(gdbPath.String())
136137

@@ -169,7 +170,7 @@ func getCommandLine(req *dbg.DebugConfigRequest, pm *packagemanager.PackageManag
169170
add(serverCmd)
170171

171172
default:
172-
return nil, &commands.FailedDebugError{Message: tr("GDB server '%s' is not supported", debugInfo.GetServer())}
173+
return nil, &arduino.FailedDebugError{Message: tr("GDB server '%s' is not supported", debugInfo.GetServer())}
173174
}
174175

175176
// Add executable

‎commands/debug/debug_info.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"context"
2020
"strings"
2121

22+
"github.com/arduino/arduino-cli/arduino"
2223
"github.com/arduino/arduino-cli/arduino/cores"
2324
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2425
"github.com/arduino/arduino-cli/arduino/sketch"
@@ -39,12 +40,12 @@ func getDebugProperties(req *debug.DebugConfigRequest, pm *packagemanager.Packag
3940
// TODO: make a generic function to extract sketch from request
4041
// and remove duplication in commands/compile.go
4142
if req.GetSketchPath() == "" {
42-
return nil, &commands.MissingSketchPathError{}
43+
return nil, &arduino.MissingSketchPathError{}
4344
}
4445
sketchPath := paths.New(req.GetSketchPath())
4546
sk, err := sketch.New(sketchPath)
4647
if err != nil {
47-
return nil, &commands.CantOpenSketchError{Cause: err}
48+
return nil, &arduino.CantOpenSketchError{Cause: err}
4849
}
4950

5051
// XXX Remove this code duplication!!
@@ -53,17 +54,17 @@ func getDebugProperties(req *debug.DebugConfigRequest, pm *packagemanager.Packag
5354
fqbnIn = sk.Metadata.CPU.Fqbn
5455
}
5556
if fqbnIn == "" {
56-
return nil, &commands.MissingFQBNError{}
57+
return nil, &arduino.MissingFQBNError{}
5758
}
5859
fqbn, err := cores.ParseFQBN(fqbnIn)
5960
if err != nil {
60-
return nil, &commands.InvalidFQBNError{Cause: err}
61+
return nil, &arduino.InvalidFQBNError{Cause: err}
6162
}
6263

6364
// Find target board and board properties
6465
_, platformRelease, board, boardProperties, referencedPlatformRelease, err := pm.ResolveFQBN(fqbn)
6566
if err != nil {
66-
return nil, &commands.UnknownFQBNError{Cause: err}
67+
return nil, &arduino.UnknownFQBNError{Cause: err}
6768
}
6869

6970
// Build configuration for debug
@@ -106,7 +107,7 @@ func getDebugProperties(req *debug.DebugConfigRequest, pm *packagemanager.Packag
106107
} else if refP, ok := referencedPlatformRelease.Programmers[req.GetProgrammer()]; ok {
107108
toolProperties.Merge(refP.Properties)
108109
} else {
109-
return nil, &commands.ProgrammerNotFoundError{Programmer: req.GetProgrammer()}
110+
return nil, &arduino.ProgrammerNotFoundError{Programmer: req.GetProgrammer()}
110111
}
111112
}
112113

@@ -115,10 +116,10 @@ func getDebugProperties(req *debug.DebugConfigRequest, pm *packagemanager.Packag
115116
importPath = paths.New(importDir)
116117
}
117118
if !importPath.Exist() {
118-
return nil, &commands.NotFoundError{Message: tr("Compiled sketch not found in %s", importPath)}
119+
return nil, &arduino.NotFoundError{Message: tr("Compiled sketch not found in %s", importPath)}
119120
}
120121
if !importPath.IsDir() {
121-
return nil, &commands.NotFoundError{Message: tr("Expected compiled sketch in directory %s, but is a file instead", importPath)}
122+
return nil, &arduino.NotFoundError{Message: tr("Expected compiled sketch in directory %s, but is a file instead", importPath)}
122123
}
123124
toolProperties.SetPath("build.path", importPath)
124125
toolProperties.Set("build.project_name", sk.Name+".ino")
@@ -138,7 +139,7 @@ func getDebugProperties(req *debug.DebugConfigRequest, pm *packagemanager.Packag
138139
}
139140

140141
if !debugProperties.ContainsKey("executable") {
141-
return nil, &commands.FailedDebugError{Message: tr("Debugging not supported for board %s", req.GetFqbn())}
142+
return nil, &arduino.FailedDebugError{Message: tr("Debugging not supported for board %s", req.GetFqbn())}
142143
}
143144

144145
server := debugProperties.Get("server")

‎commands/download.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package commands
1818
import (
1919
"time"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
"github.com/arduino/arduino-cli/httpclient"
2223
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2324
"go.bug.st/downloader/v2"
@@ -28,7 +29,7 @@ import (
2829
func GetDownloaderConfig() (*downloader.Config, error) {
2930
httpClient, err := httpclient.New()
3031
if err != nil {
31-
return nil, &InvalidArgumentError{Message: tr("Could not connect via HTTP"), Cause: err}
32+
return nil, &arduino.InvalidArgumentError{Message: tr("Could not connect via HTTP"), Cause: err}
3233
}
3334
return &downloader.Config{
3435
HttpClient: *httpClient,
@@ -59,7 +60,7 @@ func Download(d *downloader.Downloader, label string, downloadCB DownloadProgres
5960
}
6061
// The URL is not reachable for some reason
6162
if d.Resp.StatusCode >= 400 && d.Resp.StatusCode <= 599 {
62-
return &FailedDownloadError{Message: tr("Server responded with: %s", d.Resp.Status)}
63+
return &arduino.FailedDownloadError{Message: tr("Server responded with: %s", d.Resp.Status)}
6364
}
6465
downloadCB(&rpc.DownloadProgress{Completed: true})
6566
return nil

‎commands/instances.go

Lines changed: 53 additions & 52 deletions
Large diffs are not rendered by default.

‎commands/lib/download.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package lib
1818
import (
1919
"context"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
"github.com/arduino/arduino-cli/arduino/libraries/librariesindex"
2223
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
2324
"github.com/arduino/arduino-cli/commands"
@@ -34,7 +35,7 @@ func LibraryDownload(ctx context.Context, req *rpc.LibraryDownloadRequest, downl
3435

3536
lm := commands.GetLibraryManager(req.GetInstance().GetId())
3637
if lm == nil {
37-
return nil, &commands.InvalidInstanceError{}
38+
return nil, &arduino.InvalidInstanceError{}
3839
}
3940

4041
logrus.Info("Preparing download")
@@ -57,12 +58,12 @@ func downloadLibrary(lm *librariesmanager.LibrariesManager, libRelease *librarie
5758
taskCB(&rpc.TaskProgress{Name: tr("Downloading %s", libRelease)})
5859
config, err := commands.GetDownloaderConfig()
5960
if err != nil {
60-
return &commands.FailedDownloadError{Message: tr("Can't download library"), Cause: err}
61+
return &arduino.FailedDownloadError{Message: tr("Can't download library"), Cause: err}
6162
}
6263
if d, err := libRelease.Resource.Download(lm.DownloadsDir, config); err != nil {
63-
return &commands.FailedDownloadError{Message: tr("Can't download library"), Cause: err}
64+
return &arduino.FailedDownloadError{Message: tr("Can't download library"), Cause: err}
6465
} else if err := commands.Download(d, libRelease.String(), downloadCB); err != nil {
65-
return &commands.FailedDownloadError{Message: tr("Can't download library"), Cause: err}
66+
return &arduino.FailedDownloadError{Message: tr("Can't download library"), Cause: err}
6667
}
6768
taskCB(&rpc.TaskProgress{Completed: true})
6869

‎commands/lib/install.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"context"
2020
"errors"
2121

22+
"github.com/arduino/arduino-cli/arduino"
2223
"github.com/arduino/arduino-cli/arduino/libraries/librariesindex"
2324
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
2425
"github.com/arduino/arduino-cli/commands"
@@ -32,7 +33,7 @@ func LibraryInstall(ctx context.Context, req *rpc.LibraryInstallRequest,
3233

3334
lm := commands.GetLibraryManager(req.GetInstance().GetId())
3435
if lm == nil {
35-
return &commands.InvalidInstanceError{}
36+
return &arduino.InvalidInstanceError{}
3637
}
3738

3839
toInstall := map[string]*rpc.LibraryDependencyStatus{}
@@ -57,7 +58,7 @@ func LibraryInstall(ctx context.Context, req *rpc.LibraryInstallRequest,
5758
err := errors.New(
5859
tr("two different versions of the library %[1]s are required: %[2]s and %[3]s",
5960
dep.Name, dep.VersionRequired, existingDep.VersionRequired))
60-
return &commands.LibraryDependenciesResolutionFailedError{Cause: err}
61+
return &arduino.LibraryDependenciesResolutionFailedError{Cause: err}
6162
}
6263
}
6364
toInstall[dep.Name] = dep
@@ -98,15 +99,15 @@ func installLibrary(lm *librariesmanager.LibrariesManager, libRelease *libraries
9899
}
99100

100101
if err != nil {
101-
return &commands.FailedInstallError{Message: tr("Checking lib install prerequisites"), Cause: err}
102+
return &arduino.FailedInstallError{Message: tr("Checking lib install prerequisites"), Cause: err}
102103
}
103104

104105
if libReplaced != nil {
105106
taskCB(&rpc.TaskProgress{Message: tr("Replacing %[1]s with %[2]s", libReplaced, libRelease)})
106107
}
107108

108109
if err := lm.Install(libRelease, libPath); err != nil {
109-
return &commands.FailedLibraryInstallError{Cause: err}
110+
return &arduino.FailedLibraryInstallError{Cause: err}
110111
}
111112

112113
taskCB(&rpc.TaskProgress{Message: tr("Installed %s", libRelease), Completed: true})
@@ -117,7 +118,7 @@ func installLibrary(lm *librariesmanager.LibrariesManager, libRelease *libraries
117118
func ZipLibraryInstall(ctx context.Context, req *rpc.ZipLibraryInstallRequest, taskCB commands.TaskProgressCB) error {
118119
lm := commands.GetLibraryManager(req.GetInstance().GetId())
119120
if err := lm.InstallZipLib(ctx, req.Path, req.Overwrite); err != nil {
120-
return &commands.FailedLibraryInstallError{Cause: err}
121+
return &arduino.FailedLibraryInstallError{Cause: err}
121122
}
122123
taskCB(&rpc.TaskProgress{Message: tr("Library installed"), Completed: true})
123124
return nil
@@ -127,7 +128,7 @@ func ZipLibraryInstall(ctx context.Context, req *rpc.ZipLibraryInstallRequest, t
127128
func GitLibraryInstall(ctx context.Context, req *rpc.GitLibraryInstallRequest, taskCB commands.TaskProgressCB) error {
128129
lm := commands.GetLibraryManager(req.GetInstance().GetId())
129130
if err := lm.InstallGitLib(req.Url, req.Overwrite); err != nil {
130-
return &commands.FailedLibraryInstallError{Cause: err}
131+
return &arduino.FailedLibraryInstallError{Cause: err}
131132
}
132133
taskCB(&rpc.TaskProgress{Message: tr("Library installed"), Completed: true})
133134
return nil

‎commands/lib/list.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"context"
2020
"strings"
2121

22+
"github.com/arduino/arduino-cli/arduino"
2223
"github.com/arduino/arduino-cli/arduino/cores"
2324
"github.com/arduino/arduino-cli/arduino/libraries"
2425
"github.com/arduino/arduino-cli/arduino/libraries/librariesindex"
@@ -36,12 +37,12 @@ type installedLib struct {
3637
func LibraryList(ctx context.Context, req *rpc.LibraryListRequest) (*rpc.LibraryListResponse, error) {
3738
pm := commands.GetPackageManager(req.GetInstance().GetId())
3839
if pm == nil {
39-
return nil, &commands.InvalidInstanceError{}
40+
return nil, &arduino.InvalidInstanceError{}
4041
}
4142

4243
lm := commands.GetLibraryManager(req.GetInstance().GetId())
4344
if lm == nil {
44-
return nil, &commands.InvalidInstanceError{}
45+
return nil, &arduino.InvalidInstanceError{}
4546
}
4647

4748
nameFilter := strings.ToLower(req.GetName())
@@ -51,11 +52,11 @@ func LibraryList(ctx context.Context, req *rpc.LibraryListRequest) (*rpc.Library
5152
if f := req.GetFqbn(); f != "" {
5253
fqbn, err := cores.ParseFQBN(req.GetFqbn())
5354
if err != nil {
54-
return nil, &commands.InvalidFQBNError{Cause: err}
55+
return nil, &arduino.InvalidFQBNError{Cause: err}
5556
}
5657
_, boardPlatform, _, _, refBoardPlatform, err := pm.ResolveFQBN(fqbn)
5758
if err != nil {
58-
return nil, &commands.UnknownFQBNError{Cause: err}
59+
return nil, &arduino.UnknownFQBNError{Cause: err}
5960
}
6061

6162
filteredRes := map[string]*installedLib{}
@@ -103,7 +104,7 @@ func LibraryList(ctx context.Context, req *rpc.LibraryListRequest) (*rpc.Library
103104
}
104105
rpcLib, err := lib.Library.ToRPCLibrary()
105106
if err != nil {
106-
return nil, &commands.PermissionDeniedError{Message: tr("Error getting information for library %s", lib.Library.Name), Cause: err}
107+
return nil, &arduino.PermissionDeniedError{Message: tr("Error getting information for library %s", lib.Library.Name), Cause: err}
107108
}
108109
instaledLibs = append(instaledLibs, &rpc.InstalledLibrary{
109110
Library: rpcLib,

‎commands/lib/resolve_deps.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"context"
2020
"errors"
2121

22+
"github.com/arduino/arduino-cli/arduino"
2223
"github.com/arduino/arduino-cli/arduino/libraries"
2324
"github.com/arduino/arduino-cli/commands"
2425
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -28,7 +29,7 @@ import (
2829
func LibraryResolveDependencies(ctx context.Context, req *rpc.LibraryResolveDependenciesRequest) (*rpc.LibraryResolveDependenciesResponse, error) {
2930
lm := commands.GetLibraryManager(req.GetInstance().GetId())
3031
if lm == nil {
31-
return nil, &commands.InvalidInstanceError{}
32+
return nil, &arduino.InvalidInstanceError{}
3233
}
3334

3435
// Search the requested lib
@@ -52,12 +53,12 @@ func LibraryResolveDependencies(ctx context.Context, req *rpc.LibraryResolveDepe
5253
for _, directDep := range reqLibRelease.GetDependencies() {
5354
if _, ok := lm.Index.Libraries[directDep.GetName()]; !ok {
5455
err := errors.New(tr("dependency '%s' is not available", directDep.GetName()))
55-
return nil, &commands.LibraryDependenciesResolutionFailedError{Cause: err}
56+
return nil, &arduino.LibraryDependenciesResolutionFailedError{Cause: err}
5657
}
5758
}
5859

5960
// Otherwise there is no possible solution, the depends field has an invalid formula
60-
return nil, &commands.LibraryDependenciesResolutionFailedError{}
61+
return nil, &arduino.LibraryDependenciesResolutionFailedError{}
6162
}
6263

6364
res := []*rpc.LibraryDependencyStatus{}

‎commands/lib/search.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package lib
1818
import (
1919
"context"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
"github.com/arduino/arduino-cli/arduino/libraries/librariesindex"
2223
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
2324
"github.com/arduino/arduino-cli/arduino/utils"
@@ -30,7 +31,7 @@ import (
3031
func LibrarySearch(ctx context.Context, req *rpc.LibrarySearchRequest) (*rpc.LibrarySearchResponse, error) {
3132
lm := commands.GetLibraryManager(req.GetInstance().GetId())
3233
if lm == nil {
33-
return nil, &commands.InvalidInstanceError{}
34+
return nil, &arduino.InvalidInstanceError{}
3435
}
3536
return searchLibrary(req, lm), nil
3637
}

‎commands/lib/uninstall.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package lib
1818
import (
1919
"context"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
"github.com/arduino/arduino-cli/commands"
2223
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2324
)
@@ -27,7 +28,7 @@ func LibraryUninstall(ctx context.Context, req *rpc.LibraryUninstallRequest, tas
2728
lm := commands.GetLibraryManager(req.GetInstance().GetId())
2829
ref, err := createLibIndexReference(lm, req)
2930
if err != nil {
30-
return &commands.InvalidLibraryError{Cause: err}
31+
return &arduino.InvalidLibraryError{Cause: err}
3132
}
3233

3334
lib := lm.FindByReference(ref)

‎commands/lib/upgrade.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package lib
1717

1818
import (
19+
"github.com/arduino/arduino-cli/arduino"
1920
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
2021
"github.com/arduino/arduino-cli/commands"
2122
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -25,7 +26,7 @@ import (
2526
func LibraryUpgradeAll(instanceID int32, downloadCB commands.DownloadProgressCB, taskCB commands.TaskProgressCB) error {
2627
lm := commands.GetLibraryManager(instanceID)
2728
if lm == nil {
28-
return &commands.InvalidInstanceError{}
29+
return &arduino.InvalidInstanceError{}
2930
}
3031

3132
if err := upgrade(lm, listLibraries(lm, true, true), downloadCB, taskCB); err != nil {
@@ -43,7 +44,7 @@ func LibraryUpgradeAll(instanceID int32, downloadCB commands.DownloadProgressCB,
4344
func LibraryUpgrade(instanceID int32, libraryNames []string, downloadCB commands.DownloadProgressCB, taskCB commands.TaskProgressCB) error {
4445
lm := commands.GetLibraryManager(instanceID)
4546
if lm == nil {
46-
return &commands.InvalidInstanceError{}
47+
return &arduino.InvalidInstanceError{}
4748
}
4849

4950
// get the libs to upgrade

‎commands/lib/utils.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package lib
1717

1818
import (
19+
"github.com/arduino/arduino-cli/arduino"
1920
"github.com/arduino/arduino-cli/arduino/libraries/librariesindex"
2021
"github.com/arduino/arduino-cli/arduino/libraries/librariesmanager"
2122
"github.com/arduino/arduino-cli/commands"
@@ -29,7 +30,7 @@ type libraryReferencer interface {
2930
func createLibIndexReference(lm *librariesmanager.LibrariesManager, req libraryReferencer) (*librariesindex.Reference, error) {
3031
version, err := commands.ParseVersion(req)
3132
if err != nil {
32-
return nil, &commands.InvalidVersionError{Cause: err}
33+
return nil, &arduino.InvalidVersionError{Cause: err}
3334
}
3435

3536
return &librariesindex.Reference{Name: req.GetName(), Version: version}, nil
@@ -42,7 +43,7 @@ func findLibraryIndexRelease(lm *librariesmanager.LibrariesManager, req libraryR
4243
}
4344
lib := lm.Index.FindRelease(ref)
4445
if lib == nil {
45-
return nil, &commands.LibraryNotFound{Library: ref.String()}
46+
return nil, &arduino.LibraryNotFound{Library: ref.String()}
4647
}
4748
return lib, nil
4849
}

‎commands/monitor/monitor.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"fmt"
2121
"io"
2222

23+
"github.com/arduino/arduino-cli/arduino"
2324
"github.com/arduino/arduino-cli/arduino/cores"
2425
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2526
pluggableMonitor "github.com/arduino/arduino-cli/arduino/monitor"
@@ -61,7 +62,7 @@ func (p *PortProxy) Close() error {
6162
func Monitor(ctx context.Context, req *rpc.MonitorRequest) (*PortProxy, *pluggableMonitor.PortDescriptor, error) {
6263
pm := commands.GetPackageManager(req.GetInstance().GetId())
6364
if pm == nil {
64-
return nil, nil, &commands.InvalidInstanceError{}
65+
return nil, nil, &arduino.InvalidInstanceError{}
6566
}
6667

6768
m, err := findMonitorForProtocolAndBoard(pm, req.GetPort().GetProtocol(), req.GetFqbn())
@@ -70,17 +71,17 @@ func Monitor(ctx context.Context, req *rpc.MonitorRequest) (*PortProxy, *pluggab
7071
}
7172

7273
if err := m.Run(); err != nil {
73-
return nil, nil, &commands.FailedMonitorError{Cause: err}
74+
return nil, nil, &arduino.FailedMonitorError{Cause: err}
7475
}
7576

7677
descriptor, err := m.Describe()
7778
if err != nil {
78-
return nil, nil, &commands.FailedMonitorError{Cause: err}
79+
return nil, nil, &arduino.FailedMonitorError{Cause: err}
7980
}
8081

8182
monIO, err := m.Open(req.GetPort().GetAddress(), req.GetPort().GetProtocol())
8283
if err != nil {
83-
return nil, nil, &commands.FailedMonitorError{Cause: err}
84+
return nil, nil, &arduino.FailedMonitorError{Cause: err}
8485
}
8586

8687
return &PortProxy{
@@ -95,7 +96,7 @@ func Monitor(ctx context.Context, req *rpc.MonitorRequest) (*PortProxy, *pluggab
9596

9697
func findMonitorForProtocolAndBoard(pm *packagemanager.PackageManager, protocol, fqbn string) (*pluggableMonitor.PluggableMonitor, error) {
9798
if protocol == "" {
98-
return nil, &commands.MissingPortProtocolError{}
99+
return nil, &arduino.MissingPortProtocolError{}
99100
}
100101

101102
var monitorDepOrRecipe *cores.MonitorDependency
@@ -104,12 +105,12 @@ func findMonitorForProtocolAndBoard(pm *packagemanager.PackageManager, protocol,
104105
if fqbn != "" {
105106
fqbn, err := cores.ParseFQBN(fqbn)
106107
if err != nil {
107-
return nil, &commands.InvalidFQBNError{Cause: err}
108+
return nil, &arduino.InvalidFQBNError{Cause: err}
108109
}
109110

110111
_, boardPlatform, _, boardProperties, _, err := pm.ResolveFQBN(fqbn)
111112
if err != nil {
112-
return nil, &commands.UnknownFQBNError{Cause: err}
113+
return nil, &arduino.UnknownFQBNError{Cause: err}
113114
}
114115

115116
if mon, ok := boardPlatform.Monitors[protocol]; ok {
@@ -119,7 +120,7 @@ func findMonitorForProtocolAndBoard(pm *packagemanager.PackageManager, protocol,
119120
cmdLine := boardProperties.ExpandPropsInString(recipe)
120121
cmdArgs, err := properties.SplitQuotedString(cmdLine, `"'`, false)
121122
if err != nil {
122-
return nil, &commands.InvalidArgumentError{Message: tr("Invalid recipe in platform.txt"), Cause: err}
123+
return nil, &arduino.InvalidArgumentError{Message: tr("Invalid recipe in platform.txt"), Cause: err}
123124
}
124125
id := fmt.Sprintf("%s-%s", boardPlatform, protocol)
125126
return pluggableMonitor.New(id, cmdArgs...), nil
@@ -137,13 +138,13 @@ func findMonitorForProtocolAndBoard(pm *packagemanager.PackageManager, protocol,
137138
}
138139

139140
if monitorDepOrRecipe == nil {
140-
return nil, &commands.NoMonitorAvailableForProtocolError{Protocol: protocol}
141+
return nil, &arduino.NoMonitorAvailableForProtocolError{Protocol: protocol}
141142
}
142143

143144
// If it is a monitor dependency, resolve tool and create a monitor client
144145
tool := pm.FindMonitorDependency(monitorDepOrRecipe)
145146
if tool == nil {
146-
return nil, &commands.MonitorNotFoundError{Monitor: monitorDepOrRecipe.String()}
147+
return nil, &arduino.MonitorNotFoundError{Monitor: monitorDepOrRecipe.String()}
147148
}
148149

149150
return pluggableMonitor.New(

‎commands/monitor/settings.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package monitor
1818
import (
1919
"context"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
pluggableMonitor "github.com/arduino/arduino-cli/arduino/monitor"
2223
"github.com/arduino/arduino-cli/commands"
2324
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -27,7 +28,7 @@ import (
2728
func EnumerateMonitorPortSettings(ctx context.Context, req *rpc.EnumerateMonitorPortSettingsRequest) (*rpc.EnumerateMonitorPortSettingsResponse, error) {
2829
pm := commands.GetPackageManager(req.GetInstance().GetId())
2930
if pm == nil {
30-
return nil, &commands.InvalidInstanceError{}
31+
return nil, &arduino.InvalidInstanceError{}
3132
}
3233

3334
m, err := findMonitorForProtocolAndBoard(pm, req.GetPortProtocol(), req.GetFqbn())
@@ -36,13 +37,13 @@ func EnumerateMonitorPortSettings(ctx context.Context, req *rpc.EnumerateMonitor
3637
}
3738

3839
if err := m.Run(); err != nil {
39-
return nil, &commands.FailedMonitorError{Cause: err}
40+
return nil, &arduino.FailedMonitorError{Cause: err}
4041
}
4142
defer m.Quit()
4243

4344
desc, err := m.Describe()
4445
if err != nil {
45-
return nil, &commands.FailedMonitorError{Cause: err}
46+
return nil, &arduino.FailedMonitorError{Cause: err}
4647
}
4748
return &rpc.EnumerateMonitorPortSettingsResponse{Settings: convert(desc)}, nil
4849
}

‎commands/sketch/archive.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import (
2222
"path/filepath"
2323
"strings"
2424

25+
"github.com/arduino/arduino-cli/arduino"
2526
"github.com/arduino/arduino-cli/arduino/sketch"
26-
"github.com/arduino/arduino-cli/commands"
2727
"github.com/arduino/arduino-cli/i18n"
2828
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2929
paths "github.com/arduino/go-paths-helper"
@@ -43,7 +43,7 @@ func ArchiveSketch(ctx context.Context, req *rpc.ArchiveSketchRequest) (*rpc.Arc
4343

4444
s, err := sketch.New(sketchPath)
4545
if err != nil {
46-
return nil, &commands.CantOpenSketchError{Cause: err}
46+
return nil, &arduino.CantOpenSketchError{Cause: err}
4747
}
4848

4949
sketchPath = s.FullPath
@@ -56,7 +56,7 @@ func ArchiveSketch(ctx context.Context, req *rpc.ArchiveSketchRequest) (*rpc.Arc
5656

5757
archivePath, err = archivePath.Clean().Abs()
5858
if err != nil {
59-
return nil, &commands.PermissionDeniedError{Message: tr("Error getting absolute path of sketch archive"), Cause: err}
59+
return nil, &arduino.PermissionDeniedError{Message: tr("Error getting absolute path of sketch archive"), Cause: err}
6060
}
6161

6262
// Makes archivePath point to a zip file
@@ -67,18 +67,18 @@ func ArchiveSketch(ctx context.Context, req *rpc.ArchiveSketchRequest) (*rpc.Arc
6767
}
6868

6969
if archivePath.Exist() {
70-
return nil, &commands.InvalidArgumentError{Message: tr("Archive already exists")}
70+
return nil, &arduino.InvalidArgumentError{Message: tr("Archive already exists")}
7171
}
7272

7373
filesToZip, err := sketchPath.ReadDirRecursive()
7474
if err != nil {
75-
return nil, &commands.PermissionDeniedError{Message: tr("Error reading sketch files"), Cause: err}
75+
return nil, &arduino.PermissionDeniedError{Message: tr("Error reading sketch files"), Cause: err}
7676
}
7777
filesToZip.FilterOutDirs()
7878

7979
archive, err := archivePath.Create()
8080
if err != nil {
81-
return nil, &commands.PermissionDeniedError{Message: tr("Error creating sketch archive"), Cause: err}
81+
return nil, &arduino.PermissionDeniedError{Message: tr("Error creating sketch archive"), Cause: err}
8282
}
8383
defer archive.Close()
8484

@@ -90,7 +90,7 @@ func ArchiveSketch(ctx context.Context, req *rpc.ArchiveSketchRequest) (*rpc.Arc
9090
if !req.IncludeBuildDir {
9191
filePath, err := sketchPath.Parent().RelTo(f)
9292
if err != nil {
93-
return nil, &commands.PermissionDeniedError{Message: tr("Error calculating relative file path"), Cause: err}
93+
return nil, &arduino.PermissionDeniedError{Message: tr("Error calculating relative file path"), Cause: err}
9494
}
9595

9696
// Skips build folder
@@ -102,7 +102,7 @@ func ArchiveSketch(ctx context.Context, req *rpc.ArchiveSketchRequest) (*rpc.Arc
102102
// We get the parent path since we want the archive to unpack as a folder.
103103
// If we don't do this the archive would contain all the sketch files as top level.
104104
if err := addFileToSketchArchive(zipWriter, f, sketchPath.Parent()); err != nil {
105-
return nil, &commands.PermissionDeniedError{Message: tr("Error adding file to sketch archive"), Cause: err}
105+
return nil, &arduino.PermissionDeniedError{Message: tr("Error adding file to sketch archive"), Cause: err}
106106
}
107107
}
108108

‎commands/sketch/new.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ package sketch
1818
import (
1919
"context"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
"github.com/arduino/arduino-cli/arduino/globals"
22-
"github.com/arduino/arduino-cli/commands"
2323
"github.com/arduino/arduino-cli/configuration"
2424
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2525
paths "github.com/arduino/go-paths-helper"
@@ -43,12 +43,12 @@ func NewSketch(ctx context.Context, req *rpc.NewSketchRequest) (*rpc.NewSketchRe
4343
}
4444
sketchDirPath := paths.New(sketchesDir).Join(req.SketchName)
4545
if err := sketchDirPath.MkdirAll(); err != nil {
46-
return nil, &commands.CantCreateSketchError{Cause: err}
46+
return nil, &arduino.CantCreateSketchError{Cause: err}
4747
}
4848
sketchName := sketchDirPath.Base()
4949
sketchMainFilePath := sketchDirPath.Join(sketchName + globals.MainFileValidExtension)
5050
if err := sketchMainFilePath.WriteFile(emptySketch); err != nil {
51-
return nil, &commands.CantCreateSketchError{Cause: err}
51+
return nil, &arduino.CantCreateSketchError{Cause: err}
5252
}
5353

5454
return &rpc.NewSketchResponse{MainFile: sketchMainFilePath.String()}, nil

‎commands/upload/programmers_list.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package upload
1818
import (
1919
"context"
2020

21+
"github.com/arduino/arduino-cli/arduino"
2122
"github.com/arduino/arduino-cli/arduino/cores"
2223
"github.com/arduino/arduino-cli/commands"
2324
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
@@ -29,17 +30,17 @@ func ListProgrammersAvailableForUpload(ctx context.Context, req *rpc.ListProgram
2930

3031
fqbnIn := req.GetFqbn()
3132
if fqbnIn == "" {
32-
return nil, &commands.MissingFQBNError{}
33+
return nil, &arduino.MissingFQBNError{}
3334
}
3435
fqbn, err := cores.ParseFQBN(fqbnIn)
3536
if err != nil {
36-
return nil, &commands.InvalidFQBNError{Cause: err}
37+
return nil, &arduino.InvalidFQBNError{Cause: err}
3738
}
3839

3940
// Find target platforms
4041
_, platform, _, _, refPlatform, err := pm.ResolveFQBN(fqbn)
4142
if err != nil {
42-
return nil, &commands.UnknownFQBNError{Cause: err}
43+
return nil, &arduino.UnknownFQBNError{Cause: err}
4344
}
4445

4546
result := []*rpc.Programmer{}

‎commands/upload/upload.go

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"path/filepath"
2323
"strings"
2424

25+
"github.com/arduino/arduino-cli/arduino"
2526
"github.com/arduino/arduino-cli/arduino/cores"
2627
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2728
"github.com/arduino/arduino-cli/arduino/globals"
@@ -43,22 +44,22 @@ var tr = i18n.Tr
4344
// by the upload tools needed by the board using the protocol specified in SupportedUserFieldsRequest.
4445
func SupportedUserFields(ctx context.Context, req *rpc.SupportedUserFieldsRequest) (*rpc.SupportedUserFieldsResponse, error) {
4546
if req.Protocol == "" {
46-
return nil, &commands.MissingPortProtocolError{}
47+
return nil, &arduino.MissingPortProtocolError{}
4748
}
4849

4950
pm := commands.GetPackageManager(req.GetInstance().GetId())
5051
if pm == nil {
51-
return nil, &commands.InvalidInstanceError{}
52+
return nil, &arduino.InvalidInstanceError{}
5253
}
5354

5455
fqbn, err := cores.ParseFQBN(req.GetFqbn())
5556
if err != nil {
56-
return nil, &commands.InvalidFQBNError{Cause: err}
57+
return nil, &arduino.InvalidFQBNError{Cause: err}
5758
}
5859

5960
_, platformRelease, board, _, _, err := pm.ResolveFQBN(fqbn)
6061
if err != nil {
61-
return nil, &commands.UnknownFQBNError{Cause: err}
62+
return nil, &arduino.UnknownFQBNError{Cause: err}
6263
}
6364

6465
toolID, err := getToolID(board.Properties, "upload", req.Protocol)
@@ -87,7 +88,7 @@ func getToolID(props *properties.Map, action, protocol string) (string, error) {
8788
return t, nil
8889
}
8990

90-
return "", &commands.MissingPlatformPropertyError{Property: toolProperty}
91+
return "", &arduino.MissingPlatformPropertyError{Property: toolProperty}
9192
}
9293

9394
// getUserFields return all user fields supported by the tools specified.
@@ -123,7 +124,7 @@ func Upload(ctx context.Context, req *rpc.UploadRequest, outStream io.Writer, er
123124
sketchPath := paths.New(req.GetSketchPath())
124125
sk, err := sketch.New(sketchPath)
125126
if err != nil && req.GetImportDir() == "" && req.GetImportFile() == "" {
126-
return nil, &commands.CantOpenSketchError{Cause: err}
127+
return nil, &arduino.CantOpenSketchError{Cause: err}
127128
}
128129

129130
pm := commands.GetPackageManager(req.GetInstance().GetId())
@@ -155,7 +156,7 @@ func UsingProgrammer(ctx context.Context, req *rpc.UploadUsingProgrammerRequest,
155156
logrus.Tracef("Upload using programmer %s on %s started", req.GetSketchPath(), req.GetFqbn())
156157

157158
if req.GetProgrammer() == "" {
158-
return nil, &commands.MissingProgrammerError{}
159+
return nil, &arduino.MissingProgrammerError{}
159160
}
160161
_, err := Upload(ctx, &rpc.UploadRequest{
161162
Instance: req.GetInstance(),
@@ -181,7 +182,7 @@ func runProgramAction(pm *packagemanager.PackageManager,
181182
dryRun bool, userFields map[string]string) error {
182183

183184
if burnBootloader && programmerID == "" {
184-
return &commands.MissingProgrammerError{}
185+
return &arduino.MissingProgrammerError{}
185186
}
186187

187188
logrus.WithField("port", port).Tracef("Upload port")
@@ -190,18 +191,18 @@ func runProgramAction(pm *packagemanager.PackageManager,
190191
fqbnIn = sk.Metadata.CPU.Fqbn
191192
}
192193
if fqbnIn == "" {
193-
return &commands.MissingFQBNError{}
194+
return &arduino.MissingFQBNError{}
194195
}
195196
fqbn, err := cores.ParseFQBN(fqbnIn)
196197
if err != nil {
197-
return &commands.InvalidFQBNError{Cause: err}
198+
return &arduino.InvalidFQBNError{Cause: err}
198199
}
199200
logrus.WithField("fqbn", fqbn).Tracef("Detected FQBN")
200201

201202
// Find target board and board properties
202203
_, boardPlatform, board, boardProperties, buildPlatform, err := pm.ResolveFQBN(fqbn)
203204
if err != nil {
204-
return &commands.UnknownFQBNError{Cause: err}
205+
return &arduino.UnknownFQBNError{Cause: err}
205206
}
206207
logrus.
207208
WithField("boardPlatform", boardPlatform).
@@ -218,7 +219,7 @@ func runProgramAction(pm *packagemanager.PackageManager,
218219
programmer = buildPlatform.Programmers[programmerID]
219220
}
220221
if programmer == nil {
221-
return &commands.ProgrammerNotFoundError{Programmer: programmerID}
222+
return &arduino.ProgrammerNotFoundError{Programmer: programmerID}
222223
}
223224
}
224225

@@ -254,7 +255,7 @@ func runProgramAction(pm *packagemanager.PackageManager,
254255
Trace("Upload tool")
255256

256257
if split := strings.Split(uploadToolID, ":"); len(split) > 2 {
257-
return &commands.InvalidPlatformPropertyError{
258+
return &arduino.InvalidPlatformPropertyError{
258259
Property: fmt.Sprintf("%s.tool.%s", action, port.Protocol), // TODO: Can be done better, maybe inline getToolID(...)
259260
Value: uploadToolID}
260261
} else if len(split) == 2 {
@@ -304,7 +305,7 @@ func runProgramAction(pm *packagemanager.PackageManager,
304305
}
305306

306307
if !uploadProperties.ContainsKey("upload.protocol") && programmer == nil {
307-
return &commands.ProgrammerRequiredForUploadError{}
308+
return &arduino.ProgrammerRequiredForUploadError{}
308309
}
309310

310311
// Set properties for verbose upload
@@ -352,13 +353,13 @@ func runProgramAction(pm *packagemanager.PackageManager,
352353
if !burnBootloader {
353354
importPath, sketchName, err := determineBuildPathAndSketchName(importFile, importDir, sk, fqbn)
354355
if err != nil {
355-
return &commands.NotFoundError{Message: tr("Error finding build artifacts"), Cause: err}
356+
return &arduino.NotFoundError{Message: tr("Error finding build artifacts"), Cause: err}
356357
}
357358
if !importPath.Exist() {
358-
return &commands.NotFoundError{Message: tr("Compiled sketch not found in %s", importPath)}
359+
return &arduino.NotFoundError{Message: tr("Compiled sketch not found in %s", importPath)}
359360
}
360361
if !importPath.IsDir() {
361-
return &commands.NotFoundError{Message: tr("Expected compiled sketch in directory %s, but is a file instead", importPath)}
362+
return &arduino.NotFoundError{Message: tr("Expected compiled sketch in directory %s, but is a file instead", importPath)}
362363
}
363364
uploadProperties.SetPath("build.path", importPath)
364365
uploadProperties.Set("build.project_name", sketchName)
@@ -447,18 +448,18 @@ func runProgramAction(pm *packagemanager.PackageManager,
447448
// Run recipes for upload
448449
if burnBootloader {
449450
if err := runTool("erase.pattern", uploadProperties, outStream, errStream, verbose, dryRun); err != nil {
450-
return &commands.FailedUploadError{Message: tr("Failed chip erase"), Cause: err}
451+
return &arduino.FailedUploadError{Message: tr("Failed chip erase"), Cause: err}
451452
}
452453
if err := runTool("bootloader.pattern", uploadProperties, outStream, errStream, verbose, dryRun); err != nil {
453-
return &commands.FailedUploadError{Message: tr("Failed to burn bootloader"), Cause: err}
454+
return &arduino.FailedUploadError{Message: tr("Failed to burn bootloader"), Cause: err}
454455
}
455456
} else if programmer != nil {
456457
if err := runTool("program.pattern", uploadProperties, outStream, errStream, verbose, dryRun); err != nil {
457-
return &commands.FailedUploadError{Message: tr("Failed programming"), Cause: err}
458+
return &arduino.FailedUploadError{Message: tr("Failed programming"), Cause: err}
458459
}
459460
} else {
460461
if err := runTool("upload.pattern", uploadProperties, outStream, errStream, verbose, dryRun); err != nil {
461-
return &commands.FailedUploadError{Message: tr("Failed uploading"), Cause: err}
462+
return &arduino.FailedUploadError{Message: tr("Failed uploading"), Cause: err}
462463
}
463464
}
464465

0 commit comments

Comments
 (0)
Please sign in to comment.