Parcourir la source

internal/build: fix commit extraction for detached head repo (#18315)

* Fix commit extraction

* Comments for commit extraction

Requested in https://github.com/ethereum/go-ethereum/pull/18315
Aleksey @soar Smyrnov il y a 6 ans
Parent
commit
f3478f2899
1 fichiers modifiés avec 8 ajouts et 0 suppressions
  1. 8 0
      internal/build/env.go

+ 8 - 0
internal/build/env.go

@@ -20,6 +20,7 @@ import (
 	"flag"
 	"fmt"
 	"os"
+	"regexp"
 	"strconv"
 	"strings"
 	"time"
@@ -99,6 +100,13 @@ func LocalEnv() Environment {
 	if fields := strings.Fields(head); len(fields) == 2 {
 		head = fields[1]
 	} else {
+		// In this case we are in "detached head" state
+		// see: https://git-scm.com/docs/git-checkout#_detached_head
+		// Additional check required to verify, that file contains commit hash
+		commitRe, _ := regexp.Compile("^([0-9a-f]{40})$")
+		if commit := commitRe.FindString(head); commit != "" && env.Commit == "" {
+			env.Commit = commit
+		}
 		return env
 	}
 	if env.Commit == "" {