8
8
"fmt"
9
9
"os"
10
10
"os/exec"
11
+ "regexp"
11
12
"strings"
12
13
13
14
"github.com/Masterminds/semver"
@@ -39,6 +40,7 @@ func (k Kubectl) Version() (client, server semver.Version, err error) {
39
40
)
40
41
var buf bytes.Buffer
41
42
cmd .Stdout = & buf
43
+ cmd .Stderr = os .Stderr
42
44
if err := cmd .Run (); err != nil {
43
45
return zero , zero , err
44
46
}
@@ -57,6 +59,7 @@ func (k *Kubectl) setupContext() error {
57
59
cmd := exec .Command ("kubectl" , "config" , "view" , "-o" , "json" )
58
60
cfgJSON := bytes.Buffer {}
59
61
cmd .Stdout = & cfgJSON
62
+ cmd .Stderr = os .Stderr
60
63
if err := cmd .Run (); err != nil {
61
64
return err
62
65
}
@@ -115,9 +118,9 @@ func (k Kubectl) Get(namespace, kind, name string) (map[string]interface{}, erro
115
118
cmd .Stderr = & serr
116
119
if err := cmd .Run (); err != nil {
117
120
if strings .HasPrefix (serr .String (), "Error from server (NotFound)" ) {
118
- return nil , ErrorNotFound {name }
121
+ return nil , ErrorNotFound {kind , name }
119
122
}
120
- fmt .Println (serr .String ())
123
+ fmt .Print (serr .String ())
121
124
return nil , err
122
125
}
123
126
var obj map [string ]interface {}
@@ -196,6 +199,7 @@ func (k Kubectl) Diff(yaml string) (*string, error) {
196
199
cmd := exec .Command ("kubectl" , argv ... )
197
200
raw := bytes.Buffer {}
198
201
cmd .Stdout = & raw
202
+ cmd .Stderr = FilteredErr {regexp .MustCompile (`exit status \d` )}
199
203
200
204
stdin , err := cmd .StdinPipe ()
201
205
if err != nil {
0 commit comments