diff --git a/pkg/build/archive.go b/pkg/build/archive.go index 3b3a223..355be49 100644 --- a/pkg/build/archive.go +++ b/pkg/build/archive.go @@ -36,9 +36,9 @@ const ( // format, err := build.ParseArchiveFormat("zip") // → build.ArchiveFormatZip func ParseArchiveFormat(value string) (ArchiveFormat, error) { switch core.Trim(strings.ToLower(value)) { - case "", "gz", "gzip", "tar.gz": + case "", "gz", "gzip", "tgz", "tar.gz", "tar-gz": return ArchiveFormatGzip, nil - case "xz", "tar.xz": + case "xz", "txz", "tar.xz", "tar-xz": return ArchiveFormatXZ, nil case "zip": return ArchiveFormatZip, nil diff --git a/pkg/build/archive_test.go b/pkg/build/archive_test.go index 9fbe427..8658303 100644 --- a/pkg/build/archive_test.go +++ b/pkg/build/archive_test.go @@ -205,7 +205,7 @@ func TestArchive_ParseArchiveFormat_Good(t *testing.T) { }) t.Run("accepts xz aliases", func(t *testing.T) { - for _, input := range []string{"xz", "tar.xz"} { + for _, input := range []string{"xz", "txz", "tar.xz", "tar-xz"} { format, err := ParseArchiveFormat(input) require.NoError(t, err) assert.Equal(t, ArchiveFormatXZ, format) @@ -218,6 +218,14 @@ func TestArchive_ParseArchiveFormat_Good(t *testing.T) { assert.Equal(t, ArchiveFormatZip, format) }) + t.Run("accepts gzip aliases", func(t *testing.T) { + for _, input := range []string{"gz", "gzip", "tgz", "tar.gz", "tar-gz"} { + format, err := ParseArchiveFormat(input) + require.NoError(t, err) + assert.Equal(t, ArchiveFormatGzip, format) + } + }) + t.Run("rejects unsupported formats", func(t *testing.T) { format, err := ParseArchiveFormat("bzip2") assert.Error(t, err)