diff options
Diffstat (limited to 'internal/pkg')
| -rw-r--r-- | internal/pkg/compress.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/internal/pkg/compress.go b/internal/pkg/compress.go index 62faf4fc..22f990f1 100644 --- a/internal/pkg/compress.go +++ b/internal/pkg/compress.go @@ -7,6 +7,7 @@ import ( "io" "os" + "hakurei.app/internal/xz" "hakurei.app/internal/zstd" ) @@ -17,6 +18,8 @@ const ( Bzip2 // Zstd denotes a stream compressed via [zstd]. Zstd + // XZ denotes a stream compressed via [xz]. + XZ ) // A decompressArtifact is a [FileArtifact] decompressing a backing @@ -127,6 +130,17 @@ func (a *decompressArtifact) Cure(r *RContext) (io.ReadCloser, error) { io.Closer }{zstd.NewReader(br), br}, nil + case XZ: + var _dr io.Reader + if _dr, err = xz.NewReader(br, 0); err != nil { + _ = br.Close() + return nil, err + } + return struct { + io.Reader + io.Closer + }{_dr, br}, nil + default: return nil, os.ErrInvalid } |
