From f7be04a23968de91ebea65081c73aa9a47d3d86b Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Sun, 28 Jan 2018 12:03:46 -0200 Subject: [PATCH] fix: git: if exit is 0, ignore stderr --- internal/git/git.go | 16 ++++++++++------ internal/git/git_test.go | 1 - 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/internal/git/git.go b/internal/git/git.go index 5bac27f4f..3219519da 100644 --- a/internal/git/git.go +++ b/internal/git/git.go @@ -2,6 +2,7 @@ package git import ( + "bytes" "errors" "os/exec" "strings" @@ -16,16 +17,19 @@ func IsRepo() bool { } // Run runs a git command and returns its output or errors -func Run(args ...string) (output string, err error) { +func Run(args ...string) (string, error) { /* #nosec */ var cmd = exec.Command("git", args...) log.WithField("args", args).Debug("running git") - bts, err := cmd.CombinedOutput() - if err != nil { - return "", errors.New(string(bts)) + var stdout bytes.Buffer + var stderr bytes.Buffer + cmd.Stdout = &stdout + cmd.Stderr = &stderr + if err := cmd.Run(); err != nil { + return "", errors.New(stderr.String()) } - log.WithField("output", string(bts)).Debug("result") - return string(bts), err + log.WithField("output", stdout.String()).Debug("git result") + return stdout.String(), nil } // Clean the output diff --git a/internal/git/git_test.go b/internal/git/git_test.go index 1f62b8e22..68035fc32 100644 --- a/internal/git/git_test.go +++ b/internal/git/git_test.go @@ -33,5 +33,4 @@ func TestClean(t *testing.T) { out, err := Clean("asdasd 'ssadas'\nadasd", nil) assert.NoError(t, err) assert.Equal(t, "asdasd ssadas", out) - }