diff --git a/internal/build/env.go b/internal/build/env.go index 52fdf5a406..91a52a30e1 100644 --- a/internal/build/env.go +++ b/internal/build/env.go @@ -19,7 +19,6 @@ package build import ( "flag" "fmt" - "log" "os" "strconv" "strings" @@ -118,12 +117,14 @@ func getDate(commit string) string { return "" } out := RunGit("show", "-s", "--format=%ct", commit) - ti, err := strconv.ParseInt(strings.TrimSpace(out), 10, 64) - if err != nil { - log.Fatal("Could not convert gitCommit date. Trying to parse: '" + out + "' The error is: " + err.Error()) + if out == "" { return "" } - return time.Unix(ti, 0).Format("20060102") + date, err := strconv.ParseInt(strings.TrimSpace(out), 10, 64) + if err != nil { + panic(fmt.Sprintf("failed to parse git commit date: %v", err)) + } + return time.Unix(date, 0).Format("20060102") } func applyEnvFlags(env Environment) Environment { diff --git a/internal/build/util.go b/internal/build/util.go index 319c0f2d3e..971d948c44 100644 --- a/internal/build/util.go +++ b/internal/build/util.go @@ -68,13 +68,14 @@ func RunGit(args ...string) string { cmd := exec.Command("git", args...) var stdout, stderr bytes.Buffer cmd.Stdout, cmd.Stderr = &stdout, &stderr - if err := cmd.Run(); err == exec.ErrNotFound { - if !warnedAboutGit { - log.Println("Warning: can't find 'git' in PATH") - warnedAboutGit = true + if err := cmd.Run(); err != nil { + if e, ok := err.(*exec.Error); ok && e.Err == exec.ErrNotFound { + if !warnedAboutGit { + log.Println("Warning: can't find 'git' in PATH") + warnedAboutGit = true + } + return "" } - return "" - } else if err != nil { log.Fatal(strings.Join(cmd.Args, " "), ": ", err, "\n", stderr.String()) } return strings.TrimSpace(stdout.String())