aboutsummaryrefslogtreecommitdiffstats
path: root/internal/build/env.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/build/env.go')
-rw-r--r--internal/build/env.go13
1 files changed, 8 insertions, 5 deletions
diff --git a/internal/build/env.go b/internal/build/env.go
index c47681ebe..793242fcf 100644
--- a/internal/build/env.go
+++ b/internal/build/env.go
@@ -82,18 +82,21 @@ func Env() Environment {
// LocalEnv returns build environment metadata gathered from git.
func LocalEnv() Environment {
env := applyEnvFlags(Environment{Name: "local", Repo: "ethereum/go-ethereum"})
- if _, err := os.Stat(".git"); err != nil {
+ head := ReadGitFile("HEAD")
+ if splits := strings.Split(head, " "); len(splits) == 2 {
+ head = splits[1]
+ } else {
return env
}
if env.Commit == "" {
- env.Commit = RunGit("rev-parse", "HEAD")
+ env.Commit = ReadGitFile(head)
}
if env.Branch == "" {
- if b := RunGit("rev-parse", "--abbrev-ref", "HEAD"); b != "HEAD" {
- env.Branch = b
+ if head != "HEAD" {
+ env.Branch = strings.TrimLeft(head, "refs/heads/")
}
}
- if env.Tag == "" {
+ if info, err := os.Stat(".git/objects"); err == nil && info.IsDir() && env.Tag == "" {
env.Tag = firstLine(RunGit("tag", "-l", "--points-at", "HEAD"))
}
return env