Skip to content

Commit 13c2ddb

Browse files
committed
Handled package name change cause of errors move
1 parent 93f2d75 commit 13c2ddb

33 files changed

+263
-232
lines changed

Diff for: cli/core/upgrade.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ package core
1717

1818
import (
1919
"context"
20-
"errors"
20+
errs "errors"
2121
"fmt"
2222
"os"
2323

@@ -26,8 +26,8 @@ import (
2626
"github.com/arduino/arduino-cli/cli/feedback"
2727
"github.com/arduino/arduino-cli/cli/instance"
2828
"github.com/arduino/arduino-cli/cli/output"
29-
"github.com/arduino/arduino-cli/commands"
3029
"github.com/arduino/arduino-cli/commands/core"
30+
"github.com/arduino/arduino-cli/errors"
3131
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
3232
"github.com/sirupsen/logrus"
3333
"github.com/spf13/cobra"
@@ -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 errs.Is(err, &errors.PlatformAlreadyAtTheLatestVersionError{}) {
101101
feedback.Print(err.Error())
102102
continue
103103
}

Diff for: commands/board/attach.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2727
"github.com/arduino/arduino-cli/arduino/sketch"
2828
"github.com/arduino/arduino-cli/commands"
29+
"github.com/arduino/arduino-cli/errors"
2930
"github.com/arduino/arduino-cli/i18n"
3031
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
3132
discovery "github.com/arduino/board-discovery"
@@ -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, &errors.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, &errors.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, &errors.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, &errors.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, &errors.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, &errors.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

Diff for: commands/board/details.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020

2121
"github.com/arduino/arduino-cli/arduino/cores"
2222
"github.com/arduino/arduino-cli/commands"
23+
"github.com/arduino/arduino-cli/errors"
2324
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2425
)
2526

@@ -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, &errors.InvalidInstanceError{}
3233
}
3334

3435
fqbn, err := cores.ParseFQBN(req.GetFqbn())
3536
if err != nil {
36-
return nil, &commands.InvalidFQBNError{Cause: err}
37+
return nil, &errors.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, &errors.UnknownFQBNError{Cause: err}
4243
}
4344

4445
details := &rpc.BoardDetailsResponse{}

Diff for: commands/board/list.go

+16-15
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ import (
2828
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
2929
"github.com/arduino/arduino-cli/arduino/discovery"
3030
"github.com/arduino/arduino-cli/commands"
31+
"github.com/arduino/arduino-cli/errors"
3132
"github.com/arduino/arduino-cli/httpclient"
3233
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
33-
"github.com/pkg/errors"
34+
errs "github.com/pkg/errors"
3435
"github.com/segmentio/stats/v4"
3536
"github.com/sirupsen/logrus"
3637
)
@@ -51,10 +52,10 @@ var (
5152
func apiByVidPid(vid, pid string) ([]*rpc.BoardListItem, error) {
5253
// ensure vid and pid are valid before hitting the API
5354
if !validVidPid.MatchString(vid) {
54-
return nil, errors.Errorf(tr("Invalid vid value: '%s'"), vid)
55+
return nil, fmt.Errorf(tr("Invalid vid value: '%s'"), vid)
5556
}
5657
if !validVidPid.MatchString(pid) {
57-
return nil, errors.Errorf(tr("Invalid pid value: '%s'"), pid)
58+
return nil, fmt.Errorf(tr("Invalid pid value: '%s'"), pid)
5859
}
5960

6061
url := fmt.Sprintf("%s/%s/%s", vidPidURL, vid, pid)
@@ -67,15 +68,15 @@ func apiByVidPid(vid, pid string) ([]*rpc.BoardListItem, error) {
6768
httpClient, err := httpclient.New()
6869

6970
if err != nil {
70-
return nil, errors.Wrap(err, tr("failed to initialize http client"))
71+
return nil, fmt.Errorf(tr("failed to initialize http client: %w", err))
7172
}
7273

7374
if res, err := httpClient.Do(req); err == nil {
7475
if res.StatusCode >= 400 {
7576
if res.StatusCode == 404 {
7677
return nil, ErrNotFound
7778
}
78-
return nil, errors.Errorf(tr("the server responded with status %s"), res.Status)
79+
return nil, fmt.Errorf(tr("the server responded with status %s"), res.Status)
7980
}
8081

8182
body, _ := ioutil.ReadAll(res.Body)
@@ -84,22 +85,22 @@ func apiByVidPid(vid, pid string) ([]*rpc.BoardListItem, error) {
8485
var dat map[string]interface{}
8586
err = json.Unmarshal(body, &dat)
8687
if err != nil {
87-
return nil, errors.Wrap(err, tr("error processing response from server"))
88+
return nil, fmt.Errorf(tr("error processing response from server: %w", err))
8889
}
8990

9091
name, nameFound := dat["name"].(string)
9192
fqbn, fbqnFound := dat["fqbn"].(string)
9293

9394
if !nameFound || !fbqnFound {
94-
return nil, errors.New(tr("wrong format in server response"))
95+
return nil, fmt.Errorf(tr("wrong format in server response"))
9596
}
9697

9798
retVal = append(retVal, &rpc.BoardListItem{
9899
Name: name,
99100
Fqbn: fqbn,
100101
})
101102
} else {
102-
return nil, errors.Wrap(err, tr("error querying Arduino Cloud Api"))
103+
return nil, fmt.Errorf(tr("error querying Arduino Cloud Api: %w", err))
103104
}
104105

105106
return retVal, nil
@@ -138,12 +139,12 @@ func identify(pm *packagemanager.PackageManager, port *discovery.Port) ([]*rpc.B
138139
// the builder API if the board is a USB device port
139140
if len(boards) == 0 {
140141
items, err := identifyViaCloudAPI(port)
141-
if errors.Is(err, ErrNotFound) {
142+
if errs.Is(err, ErrNotFound) {
142143
// the board couldn't be detected, print a warning
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, &errors.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, &errors.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, &errors.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, &errors.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, &errors.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, &errors.UnavailableError{Message: tr("Error starting board discoveries"), Cause: fmt.Errorf("%v", runErrs)}
241242
}
242243

243244
eventsChan, errs := dm.StartSyncAll()

Diff for: commands/board/listall.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@ import (
2121

2222
"github.com/arduino/arduino-cli/arduino/utils"
2323
"github.com/arduino/arduino-cli/commands"
24+
"github.com/arduino/arduino-cli/errors"
2425
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2526
)
2627

2728
// ListAll FIXMEDOC
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, &errors.InvalidInstanceError{}
3233
}
3334

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

Diff for: commands/board/search.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222

2323
"github.com/arduino/arduino-cli/arduino/utils"
2424
"github.com/arduino/arduino-cli/commands"
25+
"github.com/arduino/arduino-cli/errors"
2526
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2627
)
2728

@@ -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, &errors.InvalidInstanceError{}
3637
}
3738

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

Diff for: commands/bundled_tools.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package commands
1818
import (
1919
"github.com/arduino/arduino-cli/arduino/cores"
2020
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
21+
"github.com/arduino/arduino-cli/errors"
2122
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
2223
)
2324

@@ -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 &errors.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})

0 commit comments

Comments
 (0)