You've already forked goreleaser
							
							
				mirror of
				https://github.com/goreleaser/goreleaser.git
				synced 2025-10-30 23:58:09 +02:00 
			
		
		
		
	fix: brew tmpl (#1057)
* fix: brew tmpl Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: compile Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: compile Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							c9546ec81b
						
					
				
				
					commit
					ef6e13a61b
				
			| @@ -2,7 +2,6 @@ | |||||||
| package client | package client | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"bytes" |  | ||||||
| 	"os" | 	"os" | ||||||
|  |  | ||||||
| 	"github.com/goreleaser/goreleaser/pkg/config" | 	"github.com/goreleaser/goreleaser/pkg/config" | ||||||
| @@ -19,6 +18,6 @@ type Info struct { | |||||||
| // Client interface | // Client interface | ||||||
| type Client interface { | type Client interface { | ||||||
| 	CreateRelease(ctx *context.Context, body string) (releaseID int64, err error) | 	CreateRelease(ctx *context.Context, body string) (releaseID int64, err error) | ||||||
| 	CreateFile(ctx *context.Context, commitAuthor config.CommitAuthor, repo config.Repo, content bytes.Buffer, path, message string) (err error) | 	CreateFile(ctx *context.Context, commitAuthor config.CommitAuthor, repo config.Repo, content []byte, path, message string) (err error) | ||||||
| 	Upload(ctx *context.Context, releaseID int64, name string, file *os.File) (err error) | 	Upload(ctx *context.Context, releaseID int64, name string, file *os.File) (err error) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,7 +1,6 @@ | |||||||
| package client | package client | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"bytes" |  | ||||||
| 	"crypto/tls" | 	"crypto/tls" | ||||||
| 	"net/http" | 	"net/http" | ||||||
| 	"net/url" | 	"net/url" | ||||||
| @@ -56,7 +55,7 @@ func (c *githubClient) CreateFile( | |||||||
| 	ctx *context.Context, | 	ctx *context.Context, | ||||||
| 	commitAuthor config.CommitAuthor, | 	commitAuthor config.CommitAuthor, | ||||||
| 	repo config.Repo, | 	repo config.Repo, | ||||||
| 	content bytes.Buffer, | 	content []byte, | ||||||
| 	path, | 	path, | ||||||
| 	message string, | 	message string, | ||||||
| ) error { | ) error { | ||||||
| @@ -65,7 +64,7 @@ func (c *githubClient) CreateFile( | |||||||
| 			Name:  github.String(commitAuthor.Name), | 			Name:  github.String(commitAuthor.Name), | ||||||
| 			Email: github.String(commitAuthor.Email), | 			Email: github.String(commitAuthor.Email), | ||||||
| 		}, | 		}, | ||||||
| 		Content: content.Bytes(), | 		Content: content, | ||||||
| 		Message: github.String(message), | 		Message: github.String(message), | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -141,7 +141,7 @@ func doRun(ctx *context.Context, brew config.Homebrew, client client.Client) err | |||||||
| 	var filename = brew.Name + ".rb" | 	var filename = brew.Name + ".rb" | ||||||
| 	var path = filepath.Join(ctx.Config.Dist, filename) | 	var path = filepath.Join(ctx.Config.Dist, filename) | ||||||
| 	log.WithField("formula", path).Info("writing") | 	log.WithField("formula", path).Info("writing") | ||||||
| 	if err := ioutil.WriteFile(path, content.Bytes(), 0644); err != nil { | 	if err := ioutil.WriteFile(path, []byte(content), 0644); err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -164,28 +164,31 @@ func doRun(ctx *context.Context, brew config.Homebrew, client client.Client) err | |||||||
| 		Info("pushing") | 		Info("pushing") | ||||||
|  |  | ||||||
| 	var msg = fmt.Sprintf("Brew formula update for %s version %s", ctx.Config.ProjectName, ctx.Git.CurrentTag) | 	var msg = fmt.Sprintf("Brew formula update for %s version %s", ctx.Config.ProjectName, ctx.Git.CurrentTag) | ||||||
| 	return client.CreateFile(ctx, brew.CommitAuthor, brew.GitHub, content, gpath, msg) | 	return client.CreateFile(ctx, brew.CommitAuthor, brew.GitHub, []byte(content), gpath, msg) | ||||||
| } | } | ||||||
|  |  | ||||||
| func ghFormulaPath(folder, filename string) string { | func ghFormulaPath(folder, filename string) string { | ||||||
| 	return path.Join(folder, filename) | 	return path.Join(folder, filename) | ||||||
| } | } | ||||||
|  |  | ||||||
| func buildFormula(ctx *context.Context, brew config.Homebrew, artifacts []artifact.Artifact) (bytes.Buffer, error) { | func buildFormula(ctx *context.Context, brew config.Homebrew, artifacts []artifact.Artifact) (string, error) { | ||||||
| 	data, err := dataFor(ctx, brew, artifacts) | 	data, err := dataFor(ctx, brew, artifacts) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return bytes.Buffer{}, err | 		return "", err | ||||||
| 	} | 	} | ||||||
| 	return doBuildFormula(data) | 	return doBuildFormula(ctx, data) | ||||||
| } | } | ||||||
|  |  | ||||||
| func doBuildFormula(data templateData) (out bytes.Buffer, err error) { | func doBuildFormula(ctx *context.Context, data templateData) (string, error) { | ||||||
| 	t, err := template.New(data.Name).Parse(formulaTemplate) | 	t, err := template.New(data.Name).Parse(formulaTemplate) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return out, err | 		return "", err | ||||||
| 	} | 	} | ||||||
| 	err = t.Execute(&out, data) | 	var out bytes.Buffer | ||||||
| 	return | 	if err := t.Execute(&out, data); err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	return tmpl.New(ctx).Apply(out.String()) | ||||||
| } | } | ||||||
|  |  | ||||||
| func dataFor(ctx *context.Context, cfg config.Homebrew, artifacts []artifact.Artifact) (templateData, error) { | func dataFor(ctx *context.Context, cfg config.Homebrew, artifacts []artifact.Artifact) (templateData, error) { | ||||||
|   | |||||||
| @@ -1,7 +1,6 @@ | |||||||
| package brew | package brew | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"bytes" |  | ||||||
| 	"flag" | 	"flag" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| @@ -66,10 +65,11 @@ func TestFullFormulae(t *testing.T) { | |||||||
| 	data.Plist = "it works" | 	data.Plist = "it works" | ||||||
| 	data.CustomBlock = []string{"devel do", `  url "https://github.com/caarlos0/test/releases/download/v0.1.3/test_Darwin_x86_64.tar.gz"`, `  sha256 "1633f61598ab0791e213135923624eb342196b3494909c91899bcd0560f84c68"`, "end"} | 	data.CustomBlock = []string{"devel do", `  url "https://github.com/caarlos0/test/releases/download/v0.1.3/test_Darwin_x86_64.tar.gz"`, `  sha256 "1633f61598ab0791e213135923624eb342196b3494909c91899bcd0560f84c68"`, "end"} | ||||||
| 	data.Install = []string{"custom install script", "another install script"} | 	data.Install = []string{"custom install script", "another install script"} | ||||||
| 	data.Tests = []string{`system "#{bin}/foo -version"`} | 	data.Tests = []string{`system "#{bin}/{{.ProjectName}} -version"`} | ||||||
| 	out, err := doBuildFormula(data) | 	formulae, err := doBuildFormula(context.New(config.Project{ | ||||||
|  | 		ProjectName: "foo", | ||||||
|  | 	}), data) | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
| 	formulae := out.String() |  | ||||||
|  |  | ||||||
| 	var golden = "testdata/test.rb.golden" | 	var golden = "testdata/test.rb.golden" | ||||||
| 	if *update { | 	if *update { | ||||||
| @@ -82,9 +82,8 @@ func TestFullFormulae(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestFormulaeSimple(t *testing.T) { | func TestFormulaeSimple(t *testing.T) { | ||||||
| 	out, err := doBuildFormula(defaultTemplateData) | 	formulae, err := doBuildFormula(context.New(config.Project{}), defaultTemplateData) | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
| 	formulae := out.String() |  | ||||||
| 	assertDefaultTemplateData(t, formulae) | 	assertDefaultTemplateData(t, formulae) | ||||||
| 	assert.NotContains(t, formulae, "def caveats") | 	assert.NotContains(t, formulae, "def caveats") | ||||||
| 	assert.NotContains(t, formulae, "depends_on") | 	assert.NotContains(t, formulae, "depends_on") | ||||||
| @@ -126,6 +125,9 @@ func TestRunPipe(t *testing.T) { | |||||||
| 				}, | 				}, | ||||||
| 				Version:   "1.0.1", | 				Version:   "1.0.1", | ||||||
| 				Artifacts: artifact.New(), | 				Artifacts: artifact.New(), | ||||||
|  | 				Env: map[string]string{ | ||||||
|  | 					"FOO": "foo_is_bar", | ||||||
|  | 				}, | ||||||
| 				Config: config.Project{ | 				Config: config.Project{ | ||||||
| 					Dist:        folder, | 					Dist:        folder, | ||||||
| 					ProjectName: name, | 					ProjectName: name, | ||||||
| @@ -148,14 +150,14 @@ func TestRunPipe(t *testing.T) { | |||||||
| 							IDs: []string{ | 							IDs: []string{ | ||||||
| 								"foo", | 								"foo", | ||||||
| 							}, | 							}, | ||||||
| 							Description:  "A run pipe test formula", | 							Description:  "A run pipe test formula and FOO={{ .Env.FOO }}", | ||||||
| 							Homepage:     "https://github.com/goreleaser", | 							Homepage:     "https://github.com/goreleaser", | ||||||
| 							Caveats:      "don't do this", | 							Caveats:      "don't do this {{ .ProjectName }}", | ||||||
| 							Test:         "system \"true\"\nsystem \"#{bin}/foo -h\"", | 							Test:         "system \"true\"\nsystem \"#{bin}/foo -h\"", | ||||||
| 							Plist:        `<xml>whatever</xml>`, | 							Plist:        `<xml>whatever</xml>`, | ||||||
| 							Dependencies: []string{"zsh", "bash"}, | 							Dependencies: []string{"zsh", "bash"}, | ||||||
| 							Conflicts:    []string{"gtk+", "qt"}, | 							Conflicts:    []string{"gtk+", "qt"}, | ||||||
| 							Install:      `bin.install "foo"`, | 							Install:      `bin.install "{{ .ProjectName }}"`, | ||||||
| 						}, | 						}, | ||||||
| 					}, | 					}, | ||||||
| 				}, | 				}, | ||||||
| @@ -423,10 +425,9 @@ func (client *DummyClient) CreateRelease(ctx *context.Context, body string) (rel | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
| func (client *DummyClient) CreateFile(ctx *context.Context, commitAuthor config.CommitAuthor, repo config.Repo, content bytes.Buffer, path, msg string) (err error) { | func (client *DummyClient) CreateFile(ctx *context.Context, commitAuthor config.CommitAuthor, repo config.Repo, content []byte, path, msg string) (err error) { | ||||||
| 	client.CreatedFile = true | 	client.CreatedFile = true | ||||||
| 	bts, _ := ioutil.ReadAll(&content) | 	client.Content = string(content) | ||||||
| 	client.Content = string(bts) |  | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| # This file was generated by GoReleaser. DO NOT EDIT. | # This file was generated by GoReleaser. DO NOT EDIT. | ||||||
| class CustomBlock < Formula | class CustomBlock < Formula | ||||||
|   desc "A run pipe test formula" |   desc "A run pipe test formula and FOO=foo_is_bar" | ||||||
|   homepage "https://github.com/goreleaser" |   homepage "https://github.com/goreleaser" | ||||||
|   version "1.0.1" |   version "1.0.1" | ||||||
|  |  | ||||||
| @@ -19,11 +19,11 @@ class CustomBlock < Formula | |||||||
|   conflicts_with "qt" |   conflicts_with "qt" | ||||||
|  |  | ||||||
|   def install |   def install | ||||||
|     bin.install "foo" |     bin.install "custom_block" | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def caveats; <<~EOS |   def caveats; <<~EOS | ||||||
|     don't do this |     don't do this custom_block | ||||||
|   EOS |   EOS | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| # This file was generated by GoReleaser. DO NOT EDIT. | # This file was generated by GoReleaser. DO NOT EDIT. | ||||||
| class CustomDownloadStrategy < Formula | class CustomDownloadStrategy < Formula | ||||||
|   desc "A run pipe test formula" |   desc "A run pipe test formula and FOO=foo_is_bar" | ||||||
|   homepage "https://github.com/goreleaser" |   homepage "https://github.com/goreleaser" | ||||||
|   version "1.0.1" |   version "1.0.1" | ||||||
|  |  | ||||||
| @@ -17,11 +17,11 @@ class CustomDownloadStrategy < Formula | |||||||
|   conflicts_with "qt" |   conflicts_with "qt" | ||||||
|  |  | ||||||
|   def install |   def install | ||||||
|     bin.install "foo" |     bin.install "custom_download_strategy" | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def caveats; <<~EOS |   def caveats; <<~EOS | ||||||
|     don't do this |     don't do this custom_download_strategy | ||||||
|   EOS |   EOS | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| # This file was generated by GoReleaser. DO NOT EDIT. | # This file was generated by GoReleaser. DO NOT EDIT. | ||||||
| require_relative "custom_download_strategy" | require_relative "custom_download_strategy" | ||||||
| class CustomRequire < Formula | class CustomRequire < Formula | ||||||
|   desc "A run pipe test formula" |   desc "A run pipe test formula and FOO=foo_is_bar" | ||||||
|   homepage "https://github.com/goreleaser" |   homepage "https://github.com/goreleaser" | ||||||
|   version "1.0.1" |   version "1.0.1" | ||||||
|  |  | ||||||
| @@ -18,11 +18,11 @@ class CustomRequire < Formula | |||||||
|   conflicts_with "qt" |   conflicts_with "qt" | ||||||
|  |  | ||||||
|   def install |   def install | ||||||
|     bin.install "foo" |     bin.install "custom_require" | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def caveats; <<~EOS |   def caveats; <<~EOS | ||||||
|     don't do this |     don't do this custom_require | ||||||
|   EOS |   EOS | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| # This file was generated by GoReleaser. DO NOT EDIT. | # This file was generated by GoReleaser. DO NOT EDIT. | ||||||
| class Default < Formula | class Default < Formula | ||||||
|   desc "A run pipe test formula" |   desc "A run pipe test formula and FOO=foo_is_bar" | ||||||
|   homepage "https://github.com/goreleaser" |   homepage "https://github.com/goreleaser" | ||||||
|   version "1.0.1" |   version "1.0.1" | ||||||
|  |  | ||||||
| @@ -17,11 +17,11 @@ class Default < Formula | |||||||
|   conflicts_with "qt" |   conflicts_with "qt" | ||||||
|  |  | ||||||
|   def install |   def install | ||||||
|     bin.install "foo" |     bin.install "default" | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def caveats; <<~EOS |   def caveats; <<~EOS | ||||||
|     don't do this |     don't do this default | ||||||
|   EOS |   EOS | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| # This file was generated by GoReleaser. DO NOT EDIT. | # This file was generated by GoReleaser. DO NOT EDIT. | ||||||
| class GithubEnterpriseUrl < Formula | class GithubEnterpriseUrl < Formula | ||||||
|   desc "A run pipe test formula" |   desc "A run pipe test formula and FOO=foo_is_bar" | ||||||
|   homepage "https://github.com/goreleaser" |   homepage "https://github.com/goreleaser" | ||||||
|   version "1.0.1" |   version "1.0.1" | ||||||
|  |  | ||||||
| @@ -17,11 +17,11 @@ class GithubEnterpriseUrl < Formula | |||||||
|   conflicts_with "qt" |   conflicts_with "qt" | ||||||
|  |  | ||||||
|   def install |   def install | ||||||
|     bin.install "foo" |     bin.install "github_enterprise_url" | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   def caveats; <<~EOS |   def caveats; <<~EOS | ||||||
|     don't do this |     don't do this github_enterprise_url | ||||||
|   EOS |   EOS | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,6 @@ | |||||||
| package release | package release | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"bytes" |  | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	"os" | 	"os" | ||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
| @@ -332,7 +331,7 @@ func (client *DummyClient) CreateRelease(ctx *context.Context, body string) (rel | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
| func (client *DummyClient) CreateFile(ctx *context.Context, commitAuthor config.CommitAuthor, repo config.Repo, content bytes.Buffer, path, msg string) (err error) { | func (client *DummyClient) CreateFile(ctx *context.Context, commitAuthor config.CommitAuthor, repo config.Repo, content []byte, path, msg string) (err error) { | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -90,7 +90,7 @@ func doRun(ctx *context.Context, client client.Client) error { | |||||||
| 		ctx, | 		ctx, | ||||||
| 		ctx.Config.Scoop.CommitAuthor, | 		ctx.Config.Scoop.CommitAuthor, | ||||||
| 		ctx.Config.Scoop.Bucket, | 		ctx.Config.Scoop.Bucket, | ||||||
| 		content, | 		content.Bytes(), | ||||||
| 		path, | 		path, | ||||||
| 		fmt.Sprintf("Scoop update for %s version %s", ctx.Config.ProjectName, ctx.Git.CurrentTag), | 		fmt.Sprintf("Scoop update for %s version %s", ctx.Config.ProjectName, ctx.Git.CurrentTag), | ||||||
| 	) | 	) | ||||||
|   | |||||||
| @@ -1,7 +1,6 @@ | |||||||
| package scoop | package scoop | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"bytes" |  | ||||||
| 	"flag" | 	"flag" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	"os" | 	"os" | ||||||
| @@ -535,10 +534,9 @@ func (client *DummyClient) CreateRelease(ctx *context.Context, body string) (rel | |||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
| func (client *DummyClient) CreateFile(ctx *context.Context, commitAuthor config.CommitAuthor, repo config.Repo, content bytes.Buffer, path, msg string) (err error) { | func (client *DummyClient) CreateFile(ctx *context.Context, commitAuthor config.CommitAuthor, repo config.Repo, content []byte, path, msg string) (err error) { | ||||||
| 	client.CreatedFile = true | 	client.CreatedFile = true | ||||||
| 	bts, _ := ioutil.ReadAll(&content) | 	client.Content = string(content) | ||||||
| 	client.Content = string(bts) |  | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user