diff --git a/internal/pkg/tar.go b/internal/pkg/tar.go index 1ce3038..33f26f3 100644 --- a/internal/pkg/tar.go +++ b/internal/pkg/tar.go @@ -3,6 +3,7 @@ package pkg import ( "archive/tar" "bytes" + "compress/bzip2" "compress/gzip" "context" "encoding/binary" @@ -21,6 +22,8 @@ const ( TarUncompressed = iota // TarGzip denotes a tarball compressed via [gzip]. TarGzip + // TarBzip2 denotes a tarball compressed via [bzip2]. + TarBzip2 ) // A tarArtifact is an [Artifact] unpacking a tarball backed by a [File]. @@ -100,6 +103,10 @@ func (a *tarArtifact) Cure(c *CureContext) (err error) { } break + case TarBzip2: + tr = io.NopCloser(bzip2.NewReader(tr)) + break + default: return os.ErrInvalid }