@@ -28,9 +28,10 @@ import (
28
28
"github.com/arduino/arduino-cli/arduino/cores/packagemanager"
29
29
"github.com/arduino/arduino-cli/arduino/discovery"
30
30
"github.com/arduino/arduino-cli/commands"
31
+ "github.com/arduino/arduino-cli/errors"
31
32
"github.com/arduino/arduino-cli/httpclient"
32
33
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
33
- "github.com/pkg/errors"
34
+ errs "github.com/pkg/errors"
34
35
"github.com/segmentio/stats/v4"
35
36
"github.com/sirupsen/logrus"
36
37
)
@@ -51,10 +52,10 @@ var (
51
52
func apiByVidPid (vid , pid string ) ([]* rpc.BoardListItem , error ) {
52
53
// ensure vid and pid are valid before hitting the API
53
54
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 )
55
56
}
56
57
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 )
58
59
}
59
60
60
61
url := fmt .Sprintf ("%s/%s/%s" , vidPidURL , vid , pid )
@@ -67,15 +68,15 @@ func apiByVidPid(vid, pid string) ([]*rpc.BoardListItem, error) {
67
68
httpClient , err := httpclient .New ()
68
69
69
70
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 ))
71
72
}
72
73
73
74
if res , err := httpClient .Do (req ); err == nil {
74
75
if res .StatusCode >= 400 {
75
76
if res .StatusCode == 404 {
76
77
return nil , ErrNotFound
77
78
}
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 )
79
80
}
80
81
81
82
body , _ := ioutil .ReadAll (res .Body )
@@ -84,22 +85,22 @@ func apiByVidPid(vid, pid string) ([]*rpc.BoardListItem, error) {
84
85
var dat map [string ]interface {}
85
86
err = json .Unmarshal (body , & dat )
86
87
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 ))
88
89
}
89
90
90
91
name , nameFound := dat ["name" ].(string )
91
92
fqbn , fbqnFound := dat ["fqbn" ].(string )
92
93
93
94
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" ))
95
96
}
96
97
97
98
retVal = append (retVal , & rpc.BoardListItem {
98
99
Name : name ,
99
100
Fqbn : fqbn ,
100
101
})
101
102
} 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 ))
103
104
}
104
105
105
106
return retVal , nil
@@ -138,12 +139,12 @@ func identify(pm *packagemanager.PackageManager, port *discovery.Port) ([]*rpc.B
138
139
// the builder API if the board is a USB device port
139
140
if len (boards ) == 0 {
140
141
items , err := identifyViaCloudAPI (port )
141
- if errors .Is (err , ErrNotFound ) {
142
+ if errs .Is (err , ErrNotFound ) {
142
143
// the board couldn't be detected, print a warning
143
144
logrus .Debug ("Board not recognized" )
144
145
} else if err != nil {
145
146
// 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" )}
147
148
}
148
149
149
150
// 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) {
188
189
189
190
pm := commands .GetPackageManager (req .GetInstance ().Id )
190
191
if pm == nil {
191
- return nil , & commands .InvalidInstanceError {}
192
+ return nil , & errors .InvalidInstanceError {}
192
193
}
193
194
194
195
dm := pm .DiscoveryManager ()
195
196
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 )}
197
198
}
198
199
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 )}
200
201
}
201
202
defer func () {
202
203
if errs := dm .StopAll (); len (errs ) > 0 {
@@ -208,7 +209,7 @@ func List(req *rpc.BoardListRequest) (r []*rpc.DetectedPort, e error) {
208
209
retVal := []* rpc.DetectedPort {}
209
210
ports , errs := pm .DiscoveryManager ().List ()
210
211
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 )}
212
213
}
213
214
for _ , port := range ports {
214
215
boards , err := identify (pm , port )
@@ -237,7 +238,7 @@ func Watch(instanceID int32, interrupt <-chan bool) (<-chan *rpc.BoardListWatchR
237
238
runErrs := dm .RunAll ()
238
239
if len (runErrs ) == len (dm .IDs ()) {
239
240
// 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 )}
241
242
}
242
243
243
244
eventsChan , errs := dm .StartSyncAll ()
0 commit comments