From 41ace07800a82d51717f84648acec74ce1c215ba Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Tue, 20 May 2025 18:44:02 -0700 Subject: [PATCH] fix(appimage): AppImage fails if fileAssociations.ext is array --- .changeset/nice-houses-approve.md | 5 +++++ pkg/package-format/appimage/appLauncher.go | 23 +++++++++++++++----- pkg/package-format/appimage/configuration.go | 4 ++-- 3 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 .changeset/nice-houses-approve.md diff --git a/.changeset/nice-houses-approve.md b/.changeset/nice-houses-approve.md new file mode 100644 index 0000000..4c53e44 --- /dev/null +++ b/.changeset/nice-houses-approve.md @@ -0,0 +1,5 @@ +--- +"app-builder-bin": patch +--- + +fix(appimage): AppImage fails if fileAssociations.ext is array diff --git a/pkg/package-format/appimage/appLauncher.go b/pkg/package-format/appimage/appLauncher.go index d6eba02..63dbedd 100644 --- a/pkg/package-format/appimage/appLauncher.go +++ b/pkg/package-format/appimage/appLauncher.go @@ -10,10 +10,10 @@ import ( "time" "github.com/develar/app-builder/pkg/fs" - "github.com/develar/app-builder/pkg/package-format" + package_format "github.com/develar/app-builder/pkg/package-format" "github.com/develar/app-builder/pkg/util" "github.com/develar/errors" - "github.com/develar/go-fs-util" + fsutil "github.com/develar/go-fs-util" ) const iconDirRelativePath = "usr/share/icons/hicolor" @@ -126,12 +126,23 @@ func copyMimeTypes(options *AppImageOptions) (string, error) { mimeTypes.WriteString(options.configuration.ProductName) mimeTypes.WriteString(" document\n") - mimeTypes.WriteString(" \n") + switch exts := fileAssociation.Ext.(type) { + case string: + mimeTypes.WriteString(" \n") + case []string: + for _, ext := range exts { + mimeTypes.WriteString(" \n") + } + default: + err := fmt.Errorf("unsupported extension type (%T) for MIME type: %s", fileAssociation.Ext, fileAssociation.MimeType) + util.LogErrorAndExit(err) + } mimeTypes.WriteString(" \n") - mimeTypes.WriteString("\n") } } diff --git a/pkg/package-format/appimage/configuration.go b/pkg/package-format/appimage/configuration.go index 94c59bf..f49ddc7 100644 --- a/pkg/package-format/appimage/configuration.go +++ b/pkg/package-format/appimage/configuration.go @@ -18,6 +18,6 @@ type IconInfo struct { } type FileAssociation struct { - Ext string `json:"ext"` - MimeType string `json:"mimeType"` + Ext interface{} `json:"ext"` // Can be string or []string + MimeType string `json:"mimeType"` }