mirror of
https://github.com/foomo/posh.git
synced 2025-10-16 12:45:38 +00:00
feat: add git util
This commit is contained in:
parent
7be5b7bd62
commit
0bb527e392
26
pkg/util/git/config.go
Normal file
26
pkg/util/git/config.go
Normal file
@ -0,0 +1,26 @@
|
||||
package git
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"github.com/foomo/posh/pkg/log"
|
||||
"github.com/foomo/posh/pkg/shell"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
func ConfigUserName(ctx context.Context, l log.Logger) (string, error) {
|
||||
value, err := shell.New(ctx, l, "git config user.name").Output()
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "failed to retrieve git user name")
|
||||
}
|
||||
return strings.TrimSpace(string(value)), nil
|
||||
}
|
||||
|
||||
func ConfigUserEmail(ctx context.Context, l log.Logger) (string, error) {
|
||||
value, err := shell.New(ctx, l, "git config user.email").Output()
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "failed to retrieve git user name")
|
||||
}
|
||||
return strings.TrimSpace(string(value)), nil
|
||||
}
|
||||
26
pkg/util/git/ref.go
Normal file
26
pkg/util/git/ref.go
Normal file
@ -0,0 +1,26 @@
|
||||
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 rev-parse --abbrev-ref HEAD").Output()
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "failed to retrieve git ref")
|
||||
}
|
||||
|
||||
if strings.TrimSpace(string(value)) == "HEAD" {
|
||||
value, err = shell.New(ctx, l, "git describe --tags").Output()
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "failed to retrieve git tag")
|
||||
}
|
||||
}
|
||||
|
||||
return strings.TrimSpace(string(value)), nil
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user