posh/pkg/util/git/ref.go
2023-05-25 09:36:18 +02:00

23 lines
537 B
Go

package git
import (
"context"
"strings"
"github.com/foomo/posh/pkg/log"
"github.com/foomo/posh/pkg/shell"
"github.com/pkg/errors"
)
func Ref(ctx context.Context, l log.Logger) (string, error) {
value, err := shell.New(ctx, l,
"git", "describe", "--tags", "--exact-match", "2>", "/dev/null",
"||", "git", "symbolic-ref -q", "--short HEAD",
"||", "git rev-parse", "--short", "HEAD",
).Output()
if err != nil {
return "", errors.Wrap(err, "failed to retrieve git ref")
}
return strings.TrimSpace(string(value)), nil
}