mirror of
https://github.com/foomo/squadron.git
synced 2025-10-16 12:35:42 +00:00
29 lines
610 B
Go
29 lines
610 B
Go
package template
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"os/exec"
|
|
)
|
|
|
|
func git(ctx context.Context) func(action string) (string, error) {
|
|
return func(action string) (string, error) {
|
|
cmd := exec.CommandContext(ctx, "git")
|
|
|
|
switch action {
|
|
case "commitsha":
|
|
cmd.Args = append(cmd.Args, "rev-list", "-1", "HEAD")
|
|
case "abbrevcommitsha":
|
|
cmd.Args = append(cmd.Args, "rev-list", "-1", "HEAD", "--abbrev-commit")
|
|
default:
|
|
cmd.Args = append(cmd.Args, "describe", "--tags", "--always")
|
|
}
|
|
res, err := cmd.Output()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return string(bytes.TrimSpace(res)), nil
|
|
}
|
|
}
|