aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2025-04-04 23:22:53 -0400
committerXe Iaso <me@xeiaso.net>2025-04-04 23:22:53 -0400
commit3f15a4e2ba358971067dcd2c3cfccfc4d7ce0854 (patch)
tree9a885b1501cc98024d2a5e9f68c487cf6a6ed60a /cmd
parente907932c3a5a49bbd53ee3d8af391636b386cd38 (diff)
downloadx-3f15a4e2ba358971067dcd2c3cfccfc4d7ce0854.tar.xz
x-3f15a4e2ba358971067dcd2c3cfccfc4d7ce0854.zip
cmd/yeet: support custom filename logic for tarball generationv1.13.4
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/yeet/internal/mktarball/mktarball.go13
-rw-r--r--cmd/yeet/internal/pkgmeta/package.go3
-rw-r--r--cmd/yeet/main.go3
3 files changed, 15 insertions, 4 deletions
diff --git a/cmd/yeet/internal/mktarball/mktarball.go b/cmd/yeet/internal/mktarball/mktarball.go
index 1133d4f..06ee2b7 100644
--- a/cmd/yeet/internal/mktarball/mktarball.go
+++ b/cmd/yeet/internal/mktarball/mktarball.go
@@ -14,6 +14,10 @@ import (
"within.website/x/cmd/yeet/internal/pkgmeta"
)
+func defaultFname(p pkgmeta.Package) string {
+ return fmt.Sprintf("%s-%s-%s-%s", p.Name, p.Version, p.Platform, p.Goarch)
+}
+
func Build(p pkgmeta.Package) (foutpath string, err error) {
defer func() {
if r := recover(); r != nil {
@@ -42,10 +46,15 @@ func Build(p pkgmeta.Package) (foutpath string, err error) {
}
defer os.RemoveAll(dir)
- pkgDir := filepath.Join(dir, fmt.Sprintf("%s-%s-%s-%s", p.Name, p.Version, p.Platform, p.Goarch))
+ folderName := defaultFname(p)
+ if p.Filename != nil {
+ folderName = p.Filename(p)
+ }
+
+ pkgDir := filepath.Join(dir, folderName)
os.MkdirAll(pkgDir, 0755)
- fname := filepath.Join("var", fmt.Sprintf("%s-%s-%s-%s.tar.gz", p.Name, p.Version, p.Platform, p.Goarch))
+ fname := filepath.Join("var", folderName+".tar.gz")
fout, err := os.Create(fname)
if err != nil {
return "", fmt.Errorf("can't make output file: %w", err)
diff --git a/cmd/yeet/internal/pkgmeta/package.go b/cmd/yeet/internal/pkgmeta/package.go
index e7a9bb9..f955c6e 100644
--- a/cmd/yeet/internal/pkgmeta/package.go
+++ b/cmd/yeet/internal/pkgmeta/package.go
@@ -18,7 +18,8 @@ type Package struct {
Documentation map[string]string `json:"documentation"` // pwd-relative source path, file in /usr/share/doc/$Name
Files map[string]string `json:"files"` // pwd-relative source path, rpm destination path
- Build func(BuildInput) `json:"build"`
+ Build func(BuildInput) `json:"build"`
+ Filename func(Package) string `json:"mkFilename"`
}
type BuildInput struct {
diff --git a/cmd/yeet/main.go b/cmd/yeet/main.go
index f574f04..9fa8db1 100644
--- a/cmd/yeet/main.go
+++ b/cmd/yeet/main.go
@@ -14,6 +14,7 @@ import (
"al.essio.dev/pkg/shellescape"
"github.com/dop251/goja"
+ yeetinternal "within.website/x/cmd/yeet/internal"
"within.website/x/cmd/yeet/internal/mkdeb"
"within.website/x/cmd/yeet/internal/mkrpm"
"within.website/x/cmd/yeet/internal/mktarball"
@@ -201,7 +202,7 @@ func main() {
"repoRoot": func() string {
return runcmd("git", "rev-parse", "--show-toplevel")
},
- "tag": gittag,
+ "tag": yeetinternal.GitVersion,
})
vm.Set("go", map[string]any{