1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-24 04:16:27 +02:00

refactor: using tmpl on checksums as well

This commit is contained in:
Carlos Alexandro Becker 2018-07-08 21:05:38 -07:00
parent 4557346fc6
commit 0311214cbe
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940
2 changed files with 8 additions and 27 deletions

View File

@ -3,11 +3,9 @@
package checksums
import (
"bytes"
"fmt"
"os"
"path/filepath"
"text/template"
"github.com/apex/log"
"golang.org/x/sync/errgroup"
@ -15,6 +13,7 @@ import (
"github.com/goreleaser/goreleaser/checksum"
"github.com/goreleaser/goreleaser/context"
"github.com/goreleaser/goreleaser/internal/artifact"
"github.com/goreleaser/goreleaser/internal/tmpl"
)
// Pipe for checksums
@ -34,7 +33,7 @@ func (Pipe) Default(ctx *context.Context) error {
// Run the pipe
func (Pipe) Run(ctx *context.Context) (err error) {
filename, err := filenameFor(ctx)
filename, err := tmpl.New(ctx).Apply(ctx.Config.Checksum.NameTemplate)
if err != nil {
return err
}
@ -83,25 +82,3 @@ func checksums(file *os.File, artifact artifact.Artifact) error {
_, err = file.WriteString(fmt.Sprintf("%v %v\n", sha, artifact.Name))
return err
}
func filenameFor(ctx *context.Context) (string, error) {
var out bytes.Buffer
t, err := template.New("checksums").
Option("missingkey=error").
Parse(ctx.Config.Checksum.NameTemplate)
if err != nil {
return "", err
}
err = t.Execute(&out, struct {
ProjectName string
Tag string
Version string
Env map[string]string
}{
ProjectName: ctx.Config.ProjectName,
Tag: ctx.Git.CurrentTag,
Version: ctx.Version,
Env: ctx.Env,
})
return out.String(), err
}

View File

@ -31,6 +31,7 @@ func TestPipe(t *testing.T) {
},
},
)
ctx.Git.CurrentTag = "1.2.3"
ctx.Env = map[string]string{"FOO": "bar"}
ctx.Artifacts.Add(artifact.Artifact{
Name: binary,
@ -65,6 +66,7 @@ func TestPipeFileNotExist(t *testing.T) {
},
},
)
ctx.Git.CurrentTag = "1.2.3"
ctx.Artifacts.Add(artifact.Artifact{
Name: "nope",
Path: "/nope",
@ -77,8 +79,8 @@ func TestPipeFileNotExist(t *testing.T) {
func TestPipeInvalidNameTemplate(t *testing.T) {
for template, eerr := range map[string]string{
"{{ .Pro }_checksums.txt": `template: checksums:1: unexpected "}" in operand`,
"{{.Env.NOPE}}": `template: checksums:1:6: executing "checksums" at <.Env.NOPE>: map has no entry for key "NOPE"`,
"{{ .Pro }_checksums.txt": `template: tmpl:1: unexpected "}" in operand`,
"{{.Env.NOPE}}": `template: tmpl:1:6: executing "tmpl" at <.Env.NOPE>: map has no entry for key "NOPE"`,
} {
t.Run(template, func(tt *testing.T) {
folder, err := ioutil.TempDir("", "goreleasertest")
@ -92,6 +94,7 @@ func TestPipeInvalidNameTemplate(t *testing.T) {
},
},
)
ctx.Git.CurrentTag = "1.2.3"
ctx.Artifacts.Add(artifact.Artifact{
Name: "whatever",
Type: artifact.UploadableBinary,
@ -116,6 +119,7 @@ func TestPipeCouldNotOpenChecksumsTxt(t *testing.T) {
},
},
)
ctx.Git.CurrentTag = "1.2.3"
ctx.Artifacts.Add(artifact.Artifact{
Name: "whatever",
Type: artifact.UploadableBinary,