Skip to content

Commit 9ea6be4

Browse files
committed
Clean up usage of github.com/pkg/errors
This is a package long since archived, so we don't want to use it anymore. Signed-off-by: Dirkjan Bussink <[email protected]>
1 parent 1b787bd commit 9ea6be4

File tree

9 files changed

+47
-50
lines changed

9 files changed

+47
-50
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.24.0 AS build
1+
FROM golang:1.24.1 AS build
22
WORKDIR /app
33
COPY . .
44

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: '2'
22

33
services:
44
app:
5-
image: golang:1.24.0
5+
image: golang:1.24.1
66
volumes:
77
- .:/work
88
working_dir: /work

go.mod

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/planetscale/cli
22

3-
go 1.24.0
3+
go 1.24.1
44

55
require (
66
github.com/99designs/keyring v1.2.2
@@ -23,8 +23,7 @@ require (
2323
github.com/mattn/go-shellwords v1.0.12
2424
github.com/mitchellh/go-homedir v1.1.0
2525
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
26-
github.com/pkg/errors v0.9.1
27-
github.com/planetscale/planetscale-go v0.128.0
26+
github.com/planetscale/planetscale-go v0.129.0
2827
github.com/planetscale/psdb v0.0.0-20240109164348-6848e728f6e7
2928
github.com/planetscale/psdbproxy v0.0.0-20250117221522-0c8e2b0e36e6
3029
github.com/spf13/cobra v1.9.1

go.sum

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,10 @@ github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP
140140
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
141141
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
142142
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
143-
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
144-
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
145143
github.com/planetscale/noglog v0.2.1-0.20210421230640-bea75fcd2e8e h1:MZ8D+Z3m2vvqGZLvoQfpaGg/j1fNDr4j03s3PRz4rVY=
146144
github.com/planetscale/noglog v0.2.1-0.20210421230640-bea75fcd2e8e/go.mod h1:hwAsSPQdvPa3WcfKfzTXxtEq/HlqwLjQasfO6QbGo4Q=
147-
github.com/planetscale/planetscale-go v0.128.0 h1:q2GZrv4PahLhSqsPAdb+fv3l8g5j6C/B8NkNNoBdbtA=
148-
github.com/planetscale/planetscale-go v0.128.0/go.mod h1:/9cIDXvqglfjCRPzPNP6BklL+J7qq50SKtAP97c4ix0=
145+
github.com/planetscale/planetscale-go v0.129.0 h1:lmmp+qbgJ2CDStZic7Tv1CgtIdnyvGA3/vTEHj3I3oE=
146+
github.com/planetscale/planetscale-go v0.129.0/go.mod h1:VE4Vn8+qWV8KlfcasKurXByncyqaL4NIA68DGep+AFg=
149147
github.com/planetscale/psdb v0.0.0-20240109164348-6848e728f6e7 h1:dxdoFKWVDlV1gq8UQC8NWCofLjCEjEHw47gfeojgs28=
150148
github.com/planetscale/psdb v0.0.0-20240109164348-6848e728f6e7/go.mod h1:WZmi4gw3rOK+ryd1inGxgfKwoFV04O7xBCqzWzv0/0U=
151149
github.com/planetscale/psdbproxy v0.0.0-20250117221522-0c8e2b0e36e6 h1:/Ox1ZTAdk+soSngzzKoJh5voOzptrpPrux11o30rIaw=

internal/auth/authenticator.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ package auth
33
import (
44
"context"
55
"encoding/json"
6+
"errors"
7+
"fmt"
68
"net/http"
79
"net/url"
810
"strings"
911
"time"
1012

1113
"github.com/benbjohnson/clock"
1214
"github.com/hashicorp/go-cleanhttp"
13-
"github.com/pkg/errors"
1415
)
1516

1617
const (
@@ -152,7 +153,7 @@ func (d *DeviceAuthenticator) VerifyDevice(ctx context.Context) (*DeviceVerifica
152153
deviceCodeRes := &DeviceCodeResponse{}
153154
err = json.NewDecoder(res.Body).Decode(deviceCodeRes)
154155
if err != nil {
155-
return nil, errors.Wrap(err, "error decoding device code response")
156+
return nil, fmt.Errorf("error decoding device code response: %w", err)
156157
}
157158

158159
checkInterval := time.Duration(deviceCodeRes.PollingInterval) * time.Second
@@ -219,12 +220,12 @@ func (d *DeviceAuthenticator) requestToken(ctx context.Context, deviceCode strin
219220
"client_id": []string{clientID},
220221
})
221222
if err != nil {
222-
return "", errors.Wrap(err, "error creating request")
223+
return "", fmt.Errorf("error creating request: %w", err)
223224
}
224225

225226
res, err := d.client.Do(req)
226227
if err != nil {
227-
return "", errors.Wrap(err, "error performing http request")
228+
return "", fmt.Errorf("error performing http request: %w", err)
228229
}
229230
defer res.Body.Close()
230231

@@ -242,7 +243,7 @@ func (d *DeviceAuthenticator) requestToken(ctx context.Context, deviceCode strin
242243

243244
err = json.NewDecoder(res.Body).Decode(tokenRes)
244245
if err != nil {
245-
return "", errors.Wrap(err, "error decoding token response")
246+
return "", fmt.Errorf("error decoding token response: %w", err)
246247
}
247248

248249
return tokenRes.AccessToken, nil
@@ -256,12 +257,12 @@ func (d *DeviceAuthenticator) RevokeToken(ctx context.Context, token string) err
256257
"token": []string{token},
257258
})
258259
if err != nil {
259-
return errors.Wrap(err, "error creating request")
260+
return fmt.Errorf("error creating request: %w", err)
260261
}
261262

262263
res, err := d.client.Do(req)
263264
if err != nil {
264-
return errors.Wrap(err, "error performing http request")
265+
return fmt.Errorf("error performing http request: %w", err)
265266
}
266267
defer res.Body.Close()
267268

@@ -311,7 +312,7 @@ func checkErrorResponse(res *http.Response) (bool, error) {
311312
errorRes := &ErrorResponse{}
312313
err := json.NewDecoder(res.Body).Decode(errorRes)
313314
if err != nil {
314-
return false, errors.Wrap(err, "error decoding error response")
315+
return false, fmt.Errorf("error decoding error response: %w", err)
315316
}
316317

317318
// If we're polling and haven't authorized yet or we need to slow down, we

internal/cmd/api/api.go

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@ package api
33
import (
44
"bytes"
55
"encoding/json"
6+
"fmt"
67
"io"
78
"net/http"
9+
"net/http/httputil"
810
"net/url"
911
"os"
1012
"path"
1113
"strings"
1214

13-
"net/http/httputil"
14-
1515
"github.com/MakeNowJust/heredoc"
16-
"github.com/pkg/errors"
1716
"github.com/planetscale/cli/internal/cmdutil"
1817
"github.com/spf13/cobra"
1918
"golang.org/x/oauth2"
@@ -121,33 +120,33 @@ func ApiCmd(ch *cmdutil.Helper, userAgent string, defaultHeaders map[string]stri
121120

122121
u, err := parseURL(ch, opts, args[0])
123122
if err != nil {
124-
return errors.Wrap(err, "parsing URL")
123+
return fmt.Errorf("parsing URL: %w", err)
125124
}
126125

127126
body, err := parseBody(opts)
128127
if err != nil {
129-
return errors.Wrap(err, "parsing HTTP request body")
128+
return fmt.Errorf("parsing HTTP request body: %w", err)
130129
}
131130

132131
req, err := http.NewRequestWithContext(ctx, method, u.String(), body)
133132
if err != nil {
134-
return errors.Wrap(err, "preparing HTTP request")
133+
return fmt.Errorf("preparing HTTP request: %w", err)
135134
}
136135

137136
req.Header, err = parseHeader(opts, req.Method, userAgent, defaultHeaders)
138137
if err != nil {
139-
return errors.Wrap(err, "parsing HTTP request header")
138+
return fmt.Errorf("parsing HTTP request header: %w", err)
140139
}
141140

142141
if ch.Debug() {
143142
debugReq, err := httputil.DumpRequestOut(req, true)
144143
if err != nil {
145-
return errors.Wrap(err, "dumping request output")
144+
return fmt.Errorf("dumping request output: %w", err)
146145
}
147146
debugReq = append(debugReq, '\n')
148147
_, err = os.Stderr.Write(debugReq)
149148
if err != nil {
150-
return errors.Wrap(err, "writing request output to stderr")
149+
return fmt.Errorf("writing request output to stderr: %w", err)
151150
}
152151
}
153152

@@ -161,16 +160,16 @@ func ApiCmd(ch *cmdutil.Helper, userAgent string, defaultHeaders map[string]stri
161160
}
162161
res, err := cl.Do(req)
163162
if err != nil {
164-
return errors.Wrap(err, "sending HTTP request")
163+
return fmt.Errorf("sending HTTP request: %w", err)
165164
}
166165
defer res.Body.Close()
167166

168167
if _, err := io.Copy(os.Stdout, res.Body); err != nil {
169-
return errors.Wrap(err, "reading HTTP response body")
168+
return fmt.Errorf("reading HTTP response body: %w", err)
170169
}
171170

172171
if res.StatusCode > 399 {
173-
return errors.Errorf("HTTP %s", res.Status)
172+
return fmt.Errorf("HTTP %s", res.Status)
174173
}
175174

176175
return nil
@@ -187,15 +186,15 @@ func parseURL(ch *cmdutil.Helper, opts *ApiOpts, endpoint string) (*url.URL, err
187186

188187
u, err := url.Parse(ch.Config.BaseURL)
189188
if err != nil {
190-
return nil, errors.Wrap(err, "parsing base URL")
189+
return nil, fmt.Errorf("parsing base URL: %w", err)
191190
}
192191
u = u.ResolveReference(&url.URL{Path: path.Join("v1", reqPath)})
193192

194193
if len(opts.Query) > 0 {
195194
for _, param := range opts.Query {
196195
k, v, ok := strings.Cut(param, "=")
197196
if !ok {
198-
return nil, errors.Wrapf(err, "parsing query param %q", param)
197+
return nil, fmt.Errorf("missing '=' in query param %q", param)
199198
}
200199
q := u.Query()
201200
q.Add(k, v)
@@ -221,7 +220,7 @@ func parseHeader(opts *ApiOpts, method, userAgent string, defaultHeaders map[str
221220
for _, header := range opts.Header {
222221
k, v, ok := strings.Cut(header, ":")
223222
if !ok {
224-
return nil, errors.Errorf("invalid header: %q", header)
223+
return nil, fmt.Errorf("invalid header: %q", header)
225224
}
226225
out.Set(k, strings.TrimPrefix(v, " "))
227226
}
@@ -242,12 +241,12 @@ func parseBody(opts *ApiOpts) (io.Reader, error) {
242241
if opts.Input == "-" {
243242
raw, err = io.ReadAll(os.Stdin)
244243
if err != nil {
245-
return nil, errors.Wrap(err, "reading body from stdin")
244+
return nil, fmt.Errorf("reading body from stdin: %w", err)
246245
}
247246
} else {
248247
raw, err = os.ReadFile(opts.Input)
249248
if err != nil {
250-
return nil, errors.Wrapf(err, "reading body from file %q", opts.Input)
249+
return nil, fmt.Errorf("reading body from file %q: %w", opts.Input, err)
251250
}
252251
}
253252
}
@@ -256,7 +255,7 @@ func parseBody(opts *ApiOpts) (io.Reader, error) {
256255
if err := json.Unmarshal(raw, &bodyMap); err != nil {
257256
// body wasn't JSON
258257
if len(opts.Field) > 0 {
259-
return nil, errors.Wrap(err, "parsing input as JSON (--field/-F was specified)")
258+
return nil, fmt.Errorf("parsing input as JSON (--field/-F was specified): %w", err)
260259
}
261260

262261
return bytes.NewReader(raw), nil
@@ -266,12 +265,12 @@ func parseBody(opts *ApiOpts) (io.Reader, error) {
266265

267266
bodyMap, err = parseFields(bodyMap, opts.Field)
268267
if err != nil {
269-
return nil, errors.Wrap(err, "parsing body field")
268+
return nil, fmt.Errorf("parsing body field: %w", err)
270269
}
271270
if bodyMap != nil {
272271
jsonBody, err := json.MarshalIndent(bodyMap, "", "\t")
273272
if err != nil {
274-
return nil, errors.Wrap(err, "parsing body field")
273+
return nil, fmt.Errorf("parsing body field: %w", err)
275274
}
276275
return bytes.NewReader(jsonBody), nil
277276
}
@@ -285,7 +284,7 @@ func parseFields(out map[string]interface{}, fields []string) (map[string]interf
285284
for _, field := range fields {
286285
err := parseFieldInto(out, field)
287286
if err != nil {
288-
return nil, errors.Wrapf(err, "parsing field %q", field)
287+
return nil, fmt.Errorf("parsing field %q: %w", field, err)
289288
}
290289
}
291290
return out, nil
@@ -294,7 +293,7 @@ func parseFields(out map[string]interface{}, fields []string) (map[string]interf
294293
func parseFieldInto(tgt map[string]interface{}, field string) error {
295294
k, v, ok := strings.Cut(field, "=")
296295
if !ok {
297-
return errors.Errorf("no `=` found in field %q", field)
296+
return fmt.Errorf("no `=` found in field %q", field)
298297
}
299298
paths := strings.Split(k, ".")
300299

@@ -311,7 +310,7 @@ func parseFieldInto(tgt map[string]interface{}, field string) error {
311310
}
312311
parsed, err := parseValue(v)
313312
if err != nil {
314-
return errors.Wrapf(err, "parsing value of field %q", field)
313+
return fmt.Errorf("parsing value of field %q: %w", field, err)
315314
}
316315
tail[lastPath] = parsed
317316
return nil
@@ -322,7 +321,7 @@ func parseValue(s string) (interface{}, error) {
322321
filename := s[1:]
323322
value, err := os.ReadFile(filename)
324323
if err != nil {
325-
return nil, errors.Wrapf(err, "reading value %q as file", s)
324+
return nil, fmt.Errorf("reading value %q as file: %w", s, err)
326325
}
327326
return string(value), nil
328327
}

internal/cmd/auth/login.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package auth
22

33
import (
44
"context"
5+
"errors"
6+
"fmt"
57
"runtime"
68

79
"github.com/hashicorp/go-cleanhttp"
@@ -12,7 +14,6 @@ import (
1214
"github.com/planetscale/planetscale-go/planetscale"
1315

1416
"github.com/fatih/color"
15-
"github.com/pkg/errors"
1617
"github.com/spf13/cobra"
1718
)
1819

@@ -65,7 +66,7 @@ func LoginCmd(ch *cmdutil.Helper) *cobra.Command {
6566

6667
err = config.WriteAccessToken(accessToken)
6768
if err != nil {
68-
return errors.Wrap(err, "error logging in")
69+
return fmt.Errorf("error logging in: %w", err)
6970
}
7071

7172
// We explicitly stop here so we can replace the spinner with our success

internal/cmd/branch/switch.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package branch
33
import (
44
"fmt"
55

6-
"github.com/pkg/errors"
76
"github.com/planetscale/cli/internal/cmdutil"
87
"github.com/planetscale/cli/internal/config"
98
"github.com/planetscale/cli/internal/printer"
@@ -65,7 +64,7 @@ func SwitchCmd(ch *cmdutil.Helper) *cobra.Command {
6564
switch cmdutil.ErrCode(err) {
6665
case ps.ErrNotFound:
6766
return fmt.Errorf("database %s does not exist in organization %s",
68-
printer.BoldBlue(ch.Config.Database), printer.BoldBlue(ch.Config.Organization))
67+
printer.BoldBlue(ch.Config.Database), printer.BoldBlue(ch.Config.Organization))
6968
default:
7069
return cmdutil.HandleError(err)
7170
}
@@ -95,7 +94,7 @@ func SwitchCmd(ch *cmdutil.Helper) *cobra.Command {
9594
}
9695

9796
if err := cfg.WriteProject(); err != nil {
98-
return errors.Wrap(err, "error writing project configuration file")
97+
return fmt.Errorf("error writing project configuration file: %w", err)
9998
}
10099

101100
ch.Printer.Printf(

internal/config/config.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package config
22

33
import (
4+
"errors"
45
"fmt"
56
"log"
67
"os"
78
"path/filepath"
89
"strings"
910

1011
"github.com/99designs/keyring"
11-
"github.com/pkg/errors"
1212
ps "github.com/planetscale/planetscale-go/planetscale"
1313

1414
"github.com/mitchellh/go-homedir"
@@ -293,7 +293,7 @@ func deleteAccessTokenPath() error {
293293
err = os.Remove(tokenPath)
294294
if err != nil {
295295
if !os.IsNotExist(err) {
296-
return errors.Wrap(err, "error removing access token file")
296+
return fmt.Errorf("error removing access token file: %w", err)
297297
}
298298
}
299299

@@ -305,7 +305,7 @@ func deleteAccessTokenPath() error {
305305
err = os.Remove(configFile)
306306
if err != nil {
307307
if !os.IsNotExist(err) {
308-
return errors.Wrap(err, "error removing default config file")
308+
return fmt.Errorf("error removing default config file: %w", err)
309309
}
310310
}
311311
return nil
@@ -332,7 +332,7 @@ func writeAccessTokenPath(accessToken string) error {
332332
tokenBytes := []byte(accessToken)
333333
err = os.WriteFile(tokenPath, tokenBytes, tokenFileMode)
334334
if err != nil {
335-
return errors.Wrap(err, "error writing token")
335+
return fmt.Errorf("error writing token: %w", err)
336336
}
337337

338338
return nil

0 commit comments

Comments
 (0)