15
15
package main
16
16
17
17
import (
18
+ "errors"
19
+ "fmt"
18
20
"io"
19
21
20
- "github.com/pkg/errors"
21
-
22
22
"github.com/ahmetb/kubectx/internal/kubeconfig"
23
23
"github.com/ahmetb/kubectx/internal/printer"
24
24
)
@@ -37,39 +37,41 @@ func (op SwitchOp) Run(_, stderr io.Writer) error {
37
37
newCtx , err = switchContext (op .Target )
38
38
}
39
39
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 )
41
44
}
42
- err = printer .Success (stderr , "Switched to context \" %s\" ." , printer .SuccessColor .Sprint (newCtx ))
43
- return errors .Wrap (err , "print error" )
45
+ return nil
44
46
}
45
47
46
48
// switchContext switches to specified context name.
47
49
func switchContext (name string ) (string , error ) {
48
50
prevCtxFile , err := kubectxPrevCtxFile ()
49
51
if err != nil {
50
- return "" , errors . Wrap ( err , "failed to determine state file" )
52
+ return "" , fmt . Errorf ( "failed to determine state file: %w" , err )
51
53
}
52
54
53
55
kc := new (kubeconfig.Kubeconfig ).WithLoader (kubeconfig .DefaultLoader )
54
56
defer kc .Close ()
55
57
if err := kc .Parse (); err != nil {
56
- return "" , errors . Wrap ( err , "kubeconfig error" )
58
+ return "" , fmt . Errorf ( "kubeconfig error: %w" , err )
57
59
}
58
60
59
61
prev := kc .GetCurrentContext ()
60
62
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 )
62
64
}
63
65
if err := kc .ModifyCurrentContext (name ); err != nil {
64
66
return "" , err
65
67
}
66
68
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 )
68
70
}
69
71
70
72
if prev != name {
71
73
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 )
73
75
}
74
76
}
75
77
return name , nil
@@ -79,11 +81,11 @@ func switchContext(name string) (string, error) {
79
81
func swapContext () (string , error ) {
80
82
prevCtxFile , err := kubectxPrevCtxFile ()
81
83
if err != nil {
82
- return "" , errors . Wrap ( err , "failed to determine state file" )
84
+ return "" , fmt . Errorf ( "failed to determine state file: %w" , err )
83
85
}
84
86
prev , err := readLastContext (prevCtxFile )
85
87
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 )
87
89
}
88
90
if prev == "" {
89
91
return "" , errors .New ("no previous context found" )
0 commit comments