From 9f46f8f9ab92fb47e2341f04de73193c80e55c34 Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 12 Mar 2026 17:46:52 -0500 Subject: [PATCH 1/4] prototype goreleaser support --- goreleaser.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 goreleaser.go diff --git a/goreleaser.go b/goreleaser.go new file mode 100644 index 0000000..bc029fc --- /dev/null +++ b/goreleaser.go @@ -0,0 +1,29 @@ +package mx + +import ( + "bytes" + "io" + "log" + "os" + + "github.com/magefile/mage/sh" +) + +// GoReleaser executes goreleaser. +func GoReleaser(env map[string]string, args ...string) error { + var stdout bytes.Buffer + var stderr bytes.Buffer + _, err := sh.Exec(env, &stdout, &stderr, "goreleaser", args...) + + if err != nil { + if _, err2 := io.Copy(os.Stdout, &stdout); err2 != nil { + log.Println(err2) + } + + if _, err2 := io.Copy(os.Stderr, &stderr); err2 != nil { + log.Println(err2) + } + } + + return err +} From ec7a9323bfd316932bffcc278a679c0758df9c23 Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 12 Mar 2026 17:50:45 -0500 Subject: [PATCH 2/4] up --- goreleaser.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/goreleaser.go b/goreleaser.go index bc029fc..54b2ae5 100644 --- a/goreleaser.go +++ b/goreleaser.go @@ -9,7 +9,12 @@ import ( "github.com/magefile/mage/sh" ) +// CleanGoReleaser removes artifacts from the standard goreleaser directory "dist". +func CleanGoReleaser() error { return sh.Rm("dist") } + // GoReleaser executes goreleaser. +// +// Silences output unless an error occurs. func GoReleaser(env map[string]string, args ...string) error { var stdout bytes.Buffer var stderr bytes.Buffer From 9cf13ce21578042459c3498713e2f8cf3b29d32b Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 12 Mar 2026 18:03:00 -0500 Subject: [PATCH 3/4] up --- goreleaser.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/goreleaser.go b/goreleaser.go index 54b2ae5..25a8f59 100644 --- a/goreleaser.go +++ b/goreleaser.go @@ -12,9 +12,7 @@ import ( // CleanGoReleaser removes artifacts from the standard goreleaser directory "dist". func CleanGoReleaser() error { return sh.Rm("dist") } -// GoReleaser executes goreleaser. -// -// Silences output unless an error occurs. +// GoReleaser executes goreleaser with the UNIX / Go idiom of silencing extraneous output. func GoReleaser(env map[string]string, args ...string) error { var stdout bytes.Buffer var stderr bytes.Buffer From a7336f838f7cef877240557bfc0619cb715628ee Mon Sep 17 00:00:00 2001 From: Andrew Pennebaker Date: Thu, 12 Mar 2026 18:04:59 -0500 Subject: [PATCH 4/4] update dox --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 521a658..79e2a1c 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Examples: * `GoVetShadow` * `Nakedret` * `UnitTest` - trigger unit test suite +* `GoReleaser`, `CleanGoReleaser` - Normalize [goreleaser](https://goreleaser.com/) # SYSTEM REQUIREMENTS @@ -44,7 +45,6 @@ Prior art and personal plugs. * [invoke](https://pypi.org/project/invoke/) - 100% Python task runner * [mage](https://magefile.org/) - 100% Go task runner * [mcandre/tinyrick](https://github.com/mcandre/tinyrick) - 100% Rust task runner -* [mcandre/tuco](https://github.com/mcandre/tuco) - Go port multiplexer * [Shake](https://shakebuild.com/) - 100% Haskell task runner 🐱