Skip to content

Commit fb07c54

Browse files
committed
use std errors package
1 parent 4997a26 commit fb07c54

25 files changed

+134
-142
lines changed

cmd/kubectx/current.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,10 @@
1515
package main
1616

1717
import (
18+
"errors"
1819
"fmt"
1920
"io"
2021

21-
"github.com/pkg/errors"
22-
2322
"github.com/ahmetb/kubectx/internal/kubeconfig"
2423
)
2524

@@ -30,13 +29,15 @@ func (_op CurrentOp) Run(stdout, _ io.Writer) error {
3029
kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
3130
defer kc.Close()
3231
if err := kc.Parse(); err != nil {
33-
return errors.Wrap(err, "kubeconfig error")
32+
return fmt.Errorf("kubeconfig error: %w", err)
3433
}
3534

3635
v := kc.GetCurrentContext()
3736
if v == "" {
3837
return errors.New("current-context is not set")
3938
}
40-
_, err := fmt.Fprintln(stdout, v)
41-
return errors.Wrap(err, "write error")
39+
if _, err := fmt.Fprintln(stdout, v); err != nil {
40+
return fmt.Errorf("write error: %w", err)
41+
}
42+
return nil
4243
}

cmd/kubectx/delete.go

+9-6
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
package main
1616

1717
import (
18+
"errors"
19+
"fmt"
1820
"io"
1921

20-
"github.com/pkg/errors"
21-
2222
"github.com/ahmetb/kubectx/internal/kubeconfig"
2323
"github.com/ahmetb/kubectx/internal/printer"
2424
)
@@ -34,7 +34,7 @@ func (op DeleteOp) Run(_, stderr io.Writer) error {
3434
// TODO inefficiency here. we open/write/close the same file many times.
3535
deletedName, wasActiveContext, err := deleteContext(ctx)
3636
if err != nil {
37-
return errors.Wrapf(err, "error deleting context \"%s\"", deletedName)
37+
return fmt.Errorf("error deleting context \"%s\": %w", deletedName, err)
3838
}
3939
if wasActiveContext {
4040
printer.Warning(stderr, "You deleted the current context. Use \"%s\" to select a new context.",
@@ -52,7 +52,7 @@ func deleteContext(name string) (deleteName string, wasActiveContext bool, err e
5252
kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
5353
defer kc.Close()
5454
if err := kc.Parse(); err != nil {
55-
return deleteName, false, errors.Wrap(err, "kubeconfig error")
55+
return deleteName, false, fmt.Errorf("kubeconfig error: %w", err)
5656
}
5757

5858
cur := kc.GetCurrentContext()
@@ -70,7 +70,10 @@ func deleteContext(name string) (deleteName string, wasActiveContext bool, err e
7070
}
7171

7272
if err := kc.DeleteContextEntry(name); err != nil {
73-
return name, false, errors.Wrap(err, "failed to modify yaml doc")
73+
return name, false, fmt.Errorf("failed to modify yaml doc: %w", err)
74+
}
75+
if err := kc.Save(); err != nil {
76+
return name, false, fmt.Errorf("failed to save modified kubeconfig file: %w", err)
7477
}
75-
return name, wasActiveContext, errors.Wrap(kc.Save(), "failed to save modified kubeconfig file")
78+
return name, wasActiveContext, nil
7679
}

cmd/kubectx/fzf.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@ package main
1616

1717
import (
1818
"bytes"
19+
"errors"
1920
"fmt"
2021
"io"
22+
"io/fs"
2123
"os"
2224
"os/exec"
2325
"strings"
2426

25-
"github.com/pkg/errors"
26-
27-
"github.com/ahmetb/kubectx/internal/cmdutil"
2827
"github.com/ahmetb/kubectx/internal/env"
2928
"github.com/ahmetb/kubectx/internal/kubeconfig"
3029
"github.com/ahmetb/kubectx/internal/printer"
@@ -42,11 +41,11 @@ func (op InteractiveSwitchOp) Run(_, stderr io.Writer) error {
4241
// parse kubeconfig just to see if it can be loaded
4342
kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
4443
if err := kc.Parse(); err != nil {
45-
if cmdutil.IsNotFoundErr(err) {
44+
if errors.Is(err, fs.ErrNotExist) {
4645
printer.Warning(stderr, "kubeconfig file not found")
4746
return nil
4847
}
49-
return errors.Wrap(err, "kubeconfig error")
48+
return fmt.Errorf("kubeconfig error: %w", err)
5049
}
5150
kc.Close()
5251

@@ -70,7 +69,7 @@ func (op InteractiveSwitchOp) Run(_, stderr io.Writer) error {
7069
}
7170
name, err := switchContext(choice)
7271
if err != nil {
73-
return errors.Wrap(err, "failed to switch context")
72+
return fmt.Errorf("failed to switch context: %w", err)
7473
}
7574
printer.Success(stderr, "Switched to context \"%s\".", printer.SuccessColor.Sprint(name))
7675
return nil
@@ -80,11 +79,11 @@ func (op InteractiveDeleteOp) Run(_, stderr io.Writer) error {
8079
// parse kubeconfig just to see if it can be loaded
8180
kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
8281
if err := kc.Parse(); err != nil {
83-
if cmdutil.IsNotFoundErr(err) {
82+
if errors.Is(err, fs.ErrNotExist) {
8483
printer.Warning(stderr, "kubeconfig file not found")
8584
return nil
8685
}
87-
return errors.Wrap(err, "kubeconfig error")
86+
return fmt.Errorf("kubeconfig error: %w", err)
8887
}
8988
kc.Close()
9089

@@ -114,7 +113,7 @@ func (op InteractiveDeleteOp) Run(_, stderr io.Writer) error {
114113

115114
name, wasActiveContext, err := deleteContext(choice)
116115
if err != nil {
117-
return errors.Wrap(err, "failed to delete context")
116+
return fmt.Errorf("failed to delete context: %w", err)
118117
}
119118

120119
if wasActiveContext {

cmd/kubectx/help.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ import (
2020
"os"
2121
"path/filepath"
2222
"strings"
23-
24-
"github.com/pkg/errors"
2523
)
2624

2725
// HelpOp describes printing help.
@@ -48,8 +46,11 @@ func printUsage(out io.Writer) error {
4846
help = strings.ReplaceAll(help, "%PROG%", selfName())
4947
help = strings.ReplaceAll(help, "%SPAC%", strings.Repeat(" ", len(selfName())))
5048

51-
_, err := fmt.Fprintf(out, "%s\n", help)
52-
return errors.Wrap(err, "write error")
49+
if _, err := fmt.Fprintf(out, "%s\n", help); err != nil {
50+
return fmt.Errorf("write error: %w", err)
51+
}
52+
53+
return nil
5354
}
5455

5556
// selfName guesses how the user invoked the program.

cmd/kubectx/list.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
package main
1616

1717
import (
18+
"errors"
1819
"fmt"
1920
"io"
21+
"io/fs"
2022

2123
"facette.io/natsort"
22-
"github.com/pkg/errors"
2324

24-
"github.com/ahmetb/kubectx/internal/cmdutil"
2525
"github.com/ahmetb/kubectx/internal/kubeconfig"
2626
"github.com/ahmetb/kubectx/internal/printer"
2727
)
@@ -33,11 +33,11 @@ func (_ ListOp) Run(stdout, stderr io.Writer) error {
3333
kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
3434
defer kc.Close()
3535
if err := kc.Parse(); err != nil {
36-
if cmdutil.IsNotFoundErr(err) {
36+
if errors.Is(err, fs.ErrNotExist) {
3737
printer.Warning(stderr, "kubeconfig file not found")
3838
return nil
3939
}
40-
return errors.Wrap(err, "kubeconfig error")
40+
return fmt.Errorf("kubeconfig error: %w", err)
4141
}
4242

4343
ctxs := kc.ContextNames()

cmd/kubectx/rename.go

+7-8
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,10 @@
1515
package main
1616

1717
import (
18+
"fmt"
1819
"io"
1920
"strings"
2021

21-
"github.com/pkg/errors"
22-
2322
"github.com/ahmetb/kubectx/internal/kubeconfig"
2423
"github.com/ahmetb/kubectx/internal/printer"
2524
)
@@ -51,7 +50,7 @@ func (op RenameOp) Run(_, stderr io.Writer) error {
5150
kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
5251
defer kc.Close()
5352
if err := kc.Parse(); err != nil {
54-
return errors.Wrap(err, "kubeconfig error")
53+
return fmt.Errorf("kubeconfig error: %w", err)
5554
}
5655

5756
cur := kc.GetCurrentContext()
@@ -60,26 +59,26 @@ func (op RenameOp) Run(_, stderr io.Writer) error {
6059
}
6160

6261
if !kc.ContextExists(op.Old) {
63-
return errors.Errorf("context \"%s\" not found, can't rename it", op.Old)
62+
return fmt.Errorf("context \"%s\" not found, can't rename it", op.Old)
6463
}
6564

6665
if kc.ContextExists(op.New) {
6766
printer.Warning(stderr, "context \"%s\" exists, overwriting it.", op.New)
6867
if err := kc.DeleteContextEntry(op.New); err != nil {
69-
return errors.Wrap(err, "failed to delete new context to overwrite it")
68+
return fmt.Errorf("failed to delete new context to overwrite it: %w", err)
7069
}
7170
}
7271

7372
if err := kc.ModifyContextName(op.Old, op.New); err != nil {
74-
return errors.Wrap(err, "failed to change context name")
73+
return fmt.Errorf("failed to change context name: %w", err)
7574
}
7675
if op.Old == cur {
7776
if err := kc.ModifyCurrentContext(op.New); err != nil {
78-
return errors.Wrap(err, "failed to set current-context to new name")
77+
return fmt.Errorf("failed to set current-context to new name: %w", err)
7978
}
8079
}
8180
if err := kc.Save(); err != nil {
82-
return errors.Wrap(err, "failed to save modified kubeconfig")
81+
return fmt.Errorf("failed to save modified kubeconfig: %w", err)
8382
}
8483
printer.Success(stderr, "Context %s renamed to %s.",
8584
printer.SuccessColor.Sprint(op.Old),

cmd/kubectx/state.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,11 @@
1515
package main
1616

1717
import (
18-
"io/ioutil"
18+
"errors"
19+
"fmt"
1920
"os"
2021
"path/filepath"
2122

22-
"github.com/pkg/errors"
23-
2423
"github.com/ahmetb/kubectx/internal/cmdutil"
2524
)
2625

@@ -35,7 +34,7 @@ func kubectxPrevCtxFile() (string, error) {
3534
// readLastContext returns the saved previous context
3635
// if the state file exists, otherwise returns "".
3736
func readLastContext(path string) (string, error) {
38-
b, err := ioutil.ReadFile(path)
37+
b, err := os.ReadFile(path)
3938
if os.IsNotExist(err) {
4039
return "", nil
4140
}
@@ -47,7 +46,7 @@ func readLastContext(path string) (string, error) {
4746
func writeLastContext(path, value string) error {
4847
dir := filepath.Dir(path)
4948
if err := os.MkdirAll(dir, 0755); err != nil {
50-
return errors.Wrap(err, "failed to create parent directories")
49+
return fmt.Errorf("failed to create parent directories: %w", err)
5150
}
52-
return ioutil.WriteFile(path, []byte(value), 0644)
51+
return os.WriteFile(path, []byte(value), 0644)
5352
}

cmd/kubectx/switch.go

+14-12
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
package main
1616

1717
import (
18+
"errors"
19+
"fmt"
1820
"io"
1921

20-
"github.com/pkg/errors"
21-
2222
"github.com/ahmetb/kubectx/internal/kubeconfig"
2323
"github.com/ahmetb/kubectx/internal/printer"
2424
)
@@ -37,39 +37,41 @@ func (op SwitchOp) Run(_, stderr io.Writer) error {
3737
newCtx, err = switchContext(op.Target)
3838
}
3939
if err != nil {
40-
return errors.Wrap(err, "failed to switch context")
40+
return fmt.Errorf("failed to switch context: %w", err)
41+
}
42+
if err = printer.Success(stderr, "Switched to context \"%s\".", printer.SuccessColor.Sprint(newCtx)); err != nil {
43+
return fmt.Errorf("print error: %w", err)
4144
}
42-
err = printer.Success(stderr, "Switched to context \"%s\".", printer.SuccessColor.Sprint(newCtx))
43-
return errors.Wrap(err, "print error")
45+
return nil
4446
}
4547

4648
// switchContext switches to specified context name.
4749
func switchContext(name string) (string, error) {
4850
prevCtxFile, err := kubectxPrevCtxFile()
4951
if err != nil {
50-
return "", errors.Wrap(err, "failed to determine state file")
52+
return "", fmt.Errorf("failed to determine state file: %w", err)
5153
}
5254

5355
kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
5456
defer kc.Close()
5557
if err := kc.Parse(); err != nil {
56-
return "", errors.Wrap(err, "kubeconfig error")
58+
return "", fmt.Errorf("kubeconfig error: %w", err)
5759
}
5860

5961
prev := kc.GetCurrentContext()
6062
if !kc.ContextExists(name) {
61-
return "", errors.Errorf("no context exists with the name: \"%s\"", name)
63+
return "", fmt.Errorf("no context exists with the name: \"%s\"", name)
6264
}
6365
if err := kc.ModifyCurrentContext(name); err != nil {
6466
return "", err
6567
}
6668
if err := kc.Save(); err != nil {
67-
return "", errors.Wrap(err, "failed to save kubeconfig")
69+
return "", fmt.Errorf("failed to save kubeconfig: %w", err)
6870
}
6971

7072
if prev != name {
7173
if err := writeLastContext(prevCtxFile, prev); err != nil {
72-
return "", errors.Wrap(err, "failed to save previous context name")
74+
return "", fmt.Errorf("failed to save previous context name: %w", err)
7375
}
7476
}
7577
return name, nil
@@ -79,11 +81,11 @@ func switchContext(name string) (string, error) {
7981
func swapContext() (string, error) {
8082
prevCtxFile, err := kubectxPrevCtxFile()
8183
if err != nil {
82-
return "", errors.Wrap(err, "failed to determine state file")
84+
return "", fmt.Errorf("failed to determine state file: %w", err)
8385
}
8486
prev, err := readLastContext(prevCtxFile)
8587
if err != nil {
86-
return "", errors.Wrap(err, "failed to read previous context file")
88+
return "", fmt.Errorf("failed to read previous context file: %w", err)
8789
}
8890
if prev == "" {
8991
return "", errors.New("no previous context found")

cmd/kubectx/unset.go

+8-7
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
package main
1616

1717
import (
18+
"fmt"
1819
"io"
1920

20-
"github.com/pkg/errors"
21-
2221
"github.com/ahmetb/kubectx/internal/kubeconfig"
2322
"github.com/ahmetb/kubectx/internal/printer"
2423
)
@@ -30,16 +29,18 @@ func (_ UnsetOp) Run(_, stderr io.Writer) error {
3029
kc := new(kubeconfig.Kubeconfig).WithLoader(kubeconfig.DefaultLoader)
3130
defer kc.Close()
3231
if err := kc.Parse(); err != nil {
33-
return errors.Wrap(err, "kubeconfig error")
32+
return fmt.Errorf("kubeconfig error: %w", err)
3433
}
3534

3635
if err := kc.UnsetCurrentContext(); err != nil {
37-
return errors.Wrap(err, "error while modifying current-context")
36+
return fmt.Errorf("error while modifying current-context: %w", err)
3837
}
3938
if err := kc.Save(); err != nil {
40-
return errors.Wrap(err, "failed to save kubeconfig file after modification")
39+
return fmt.Errorf("failed to save kubeconfig file after modification: %w", err)
4140
}
4241

43-
err := printer.Success(stderr, "Active context unset for kubectl.")
44-
return errors.Wrap(err, "write error")
42+
if err := printer.Success(stderr, "Active context unset for kubectl."); err != nil {
43+
return fmt.Errorf("write error: %w", err)
44+
}
45+
return nil
4546
}

0 commit comments

Comments
 (0)