diff --git a/git/git.go b/git/git.go index 16570a0fa..a4fae4408 100644 --- a/git/git.go +++ b/git/git.go @@ -29,10 +29,12 @@ func CurrentBranch() (string, error) { return firstLine(output), nil } - ce := err.(*run.CmdError) - if ce.Stderr.Len() == 0 { - // Detached head - return "", errors.New("git: not on any branch") + var cmdErr *run.CmdError + if errors.As(err, &cmdErr) { + if cmdErr.Stderr.Len() == 0 { + // Detached head + return "", errors.New("git: not on any branch") + } } // Unknown error diff --git a/test/helpers.go b/test/helpers.go index 390d779c4..556b27157 100644 --- a/test/helpers.go +++ b/test/helpers.go @@ -14,7 +14,7 @@ import ( // OutputStub implements a simple utils.Runnable type OutputStub struct { Out []byte - Error *run.CmdError + Error error } func (s OutputStub) Output() ([]byte, error) { @@ -49,6 +49,7 @@ func (cs *CmdStubber) Stub(desiredOutput string) { } func (cs *CmdStubber) StubError(errText string) { + // TODO support error types beyond CmdError stderrBuff := bytes.NewBufferString(errText) args := []string{"stub"} // TODO make more real? err := errors.New(errText)