gitee.com/mirrors_opencollective/goreleaser@v0.45.0/pipeline/build/ldflags.go (about) 1 package build 2 3 import ( 4 "bytes" 5 "text/template" 6 "time" 7 8 "github.com/goreleaser/goreleaser/config" 9 "github.com/goreleaser/goreleaser/context" 10 ) 11 12 type ldflagsData struct { 13 Date string 14 Tag string 15 Commit string 16 Version string 17 Env map[string]string 18 } 19 20 func ldflags(ctx *context.Context, build config.Build) (string, error) { 21 var data = ldflagsData{ 22 Commit: ctx.Git.Commit, 23 Tag: ctx.Git.CurrentTag, 24 Version: ctx.Version, 25 Date: time.Now().UTC().Format(time.RFC3339), 26 Env: ctx.Env, 27 } 28 var out bytes.Buffer 29 t, err := template.New("ldflags"). 30 Option("missingkey=error"). 31 Parse(build.Ldflags) 32 if err != nil { 33 return "", err 34 } 35 err = t.Execute(&out, data) 36 return out.String(), err 37 }