From ef1bca264162f0340089ef44c44eca0bc6eaccd2 Mon Sep 17 00:00:00 2001 From: cortex3 <10298122+cortex3@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:14:18 +0100 Subject: [PATCH] improve error output for git commands --- pkg/transformer/openshift/utils.go | 31 +++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/pkg/transformer/openshift/utils.go b/pkg/transformer/openshift/utils.go index 53f8124364..70bfc798fd 100644 --- a/pkg/transformer/openshift/utils.go +++ b/pkg/transformer/openshift/utils.go @@ -1,6 +1,7 @@ package openshift import ( + "github.com/pkg/errors" "os/exec" "strings" ) @@ -34,12 +35,16 @@ func GetImageTag(image string) string { func GetAbsBuildContext(context string) (string, error) { cmd := exec.Command("git", "rev-parse", "--show-prefix") cmd.Dir = context - out, err := cmd.Output() + var out strings.Builder + var stderr strings.Builder + cmd.Stdout = &out + cmd.Stderr = &stderr + err := cmd.Run() if err != nil { - return "", err + return "", errors.New(stderr.String()) } //convert output of command to string - contextDir := strings.Trim(string(out), "\n") + contextDir := strings.Trim(out.String(), "\n") return contextDir, nil } @@ -53,11 +58,15 @@ func HasGitBinary() bool { func GetGitCurrentRemoteURL(composeFileDir string) (string, error) { cmd := exec.Command("git", "ls-remote", "--get-url") cmd.Dir = composeFileDir - out, err := cmd.Output() + var out strings.Builder + var stderr strings.Builder + cmd.Stdout = &out + cmd.Stderr = &stderr + err := cmd.Run() if err != nil { - return "", err + return "", errors.New(stderr.String()) } - url := strings.TrimRight(string(out), "\n") + url := strings.TrimRight(out.String(), "\n") if !strings.HasSuffix(url, ".git") { url += ".git" } @@ -68,9 +77,13 @@ func GetGitCurrentRemoteURL(composeFileDir string) (string, error) { func GetGitCurrentBranch(composeFileDir string) (string, error) { cmd := exec.Command("git", "rev-parse", "--abbrev-ref", "HEAD") cmd.Dir = composeFileDir - out, err := cmd.Output() + var out strings.Builder + var stderr strings.Builder + cmd.Stdout = &out + cmd.Stderr = &stderr + err := cmd.Run() if err != nil { - return "", err + return "", errors.New(stderr.String()) } - return strings.TrimRight(string(out), "\n"), nil + return strings.TrimRight(out.String(), "\n"), nil }