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  }