From de65f5f5beb8a023690534b392480428e1ba15f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Suszy=C5=84ski?= Date: Mon, 11 Dec 2023 19:40:06 +0100 Subject: [PATCH] Printing stderr when exec.Command fails --- .../code-generator/pkg/codegen/helpers/generator_test.go | 8 -------- staging/src/k8s.io/code-generator/pkg/osbin/git/find.go | 5 +++++ staging/src/k8s.io/code-generator/pkg/osbin/git/grep.go | 5 +++++ .../k8s.io/code-generator/pkg/osbin/golang/packageof.go | 7 ++++--- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/staging/src/k8s.io/code-generator/pkg/codegen/helpers/generator_test.go b/staging/src/k8s.io/code-generator/pkg/codegen/helpers/generator_test.go index 53ec528c2684d..a53369a5d9535 100644 --- a/staging/src/k8s.io/code-generator/pkg/codegen/helpers/generator_test.go +++ b/staging/src/k8s.io/code-generator/pkg/codegen/helpers/generator_test.go @@ -37,9 +37,6 @@ func TestGenerate(t *testing.T) { if testing.Short() { t.Skip("skipping test in short mode") } - if !binaryAvailable("git") { - t.Skip("skipping test because git is not available") - } _ = klogtest.InitKlog(t) klog.SetLogger(ktesting.NewLogger(t, ktesting.NewConfig())) @@ -70,11 +67,6 @@ func TestGenerate(t *testing.T) { } } -func binaryAvailable(bin string) bool { - p, err := exec.LookPath(bin) - return err == nil && len(p) > 0 -} - func prepareWorkdir(tb testing.TB) (string, string) { var sourcedir string if s, err := current.Dir(); err != nil { diff --git a/staging/src/k8s.io/code-generator/pkg/osbin/git/find.go b/staging/src/k8s.io/code-generator/pkg/osbin/git/find.go index eb3d73f041cf1..1a19ecaa49c81 100644 --- a/staging/src/k8s.io/code-generator/pkg/osbin/git/find.go +++ b/staging/src/k8s.io/code-generator/pkg/osbin/git/find.go @@ -17,6 +17,7 @@ limitations under the License. package git import ( + "errors" "io" "k8s.io/klog/v2" "os" @@ -58,6 +59,10 @@ func Find(pathspec string, opts ...FindOpt) ([]string, error) { klog.V(3).Infof("Running: %q", cmd) bytes, err := cmd.Output() if err != nil { + var ee *exec.ExitError + if errors.As(err, &ee) { + klog.Errorf("git ls-files stderr: %s", string(ee.Stderr)) + } return nil, err } out := strings.Trim(string(bytes), "\n\x00") diff --git a/staging/src/k8s.io/code-generator/pkg/osbin/git/grep.go b/staging/src/k8s.io/code-generator/pkg/osbin/git/grep.go index 8a90c42cdee93..a047c683a44c6 100644 --- a/staging/src/k8s.io/code-generator/pkg/osbin/git/grep.go +++ b/staging/src/k8s.io/code-generator/pkg/osbin/git/grep.go @@ -17,6 +17,7 @@ limitations under the License. package git import ( + "errors" "io" "k8s.io/klog/v2" "os" @@ -66,6 +67,10 @@ func Grep(pattern, pathspec string, opts ...GrepOpt) ([]string, error) { klog.V(3).Infof("Running: %q", cmd) bytes, err := cmd.Output() if err != nil { + var ee *exec.ExitError + if errors.As(err, &ee) { + klog.Errorf("git grep stderr: %s", string(ee.Stderr)) + } return nil, err } out := strings.Trim(string(bytes), "\n\x00") diff --git a/staging/src/k8s.io/code-generator/pkg/osbin/golang/packageof.go b/staging/src/k8s.io/code-generator/pkg/osbin/golang/packageof.go index 1aa229a12a8a6..455067e29d2b6 100644 --- a/staging/src/k8s.io/code-generator/pkg/osbin/golang/packageof.go +++ b/staging/src/k8s.io/code-generator/pkg/osbin/golang/packageof.go @@ -33,9 +33,10 @@ func PackageOf(path string) (string, error) { klog.V(3).Infof("Running: %q", c) out, err := c.Output() if err != nil { - var exitErr *exec.ExitError - errors.As(err, &exitErr) - klog.Errorf("Stderr ==> %s", exitErr.Stderr) + var ee *exec.ExitError + if errors.As(err, &ee) { + klog.Errorf("go list stderr: %s", ee.Stderr) + } return "", err } return strings.Trim(string(out), "\n"), nil