Files
Mario Loriedo 24a33a538c Move code for sparse optimized copy to a dedicated method
Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-02-27 15:59:56 +01:00

32 lines
676 B
Go

package compression
import (
"io"
image "github.com/containers/image/v5/pkg/compression"
"github.com/sirupsen/logrus"
)
type gzipDecompressor struct {
genericDecompressor
}
func newGzipDecompressor(compressedFilePath string) (*gzipDecompressor, error) {
d, err := newGenericDecompressor(compressedFilePath)
return &gzipDecompressor{*d}, err
}
func (d *gzipDecompressor) decompress(w WriteSeekCloser, r io.Reader) error {
gzReader, err := image.GzipDecompressor(r)
if err != nil {
return err
}
defer func() {
if err := gzReader.Close(); err != nil {
logrus.Errorf("Unable to close gz file: %q", err)
}
}()
return d.sparseOptimizedCopy(w, gzReader)
}