Remove duplication and make consistent usage of the progress bar

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
This commit is contained in:
Mario Loriedo
2024-02-20 13:56:12 +01:00
parent c42d3a74ed
commit 2245cf8dc4
6 changed files with 116 additions and 172 deletions

View File

@ -2,44 +2,20 @@ package compression
import (
"io"
"os"
crcOs "github.com/crc-org/crc/v2/pkg/os"
"github.com/sirupsen/logrus"
)
type uncompressedDecompressor struct {
compressedFilePath string
compressedFile *os.File
genericDecompressor
}
func newUncompressedDecompressor(compressedFilePath string) decompressor {
return &uncompressedDecompressor{
compressedFilePath: compressedFilePath,
}
func newUncompressedDecompressor(compressedFilePath string) (*uncompressedDecompressor, error) {
d, err := newGenericDecompressor(compressedFilePath)
return &uncompressedDecompressor{*d}, err
}
func (d *uncompressedDecompressor) srcFilePath() string {
return d.compressedFilePath
}
func (d *uncompressedDecompressor) reader() (io.Reader, error) {
srcFile, err := os.Open(d.compressedFilePath)
if err != nil {
return nil, err
}
d.compressedFile = srcFile
return srcFile, nil
}
func (*uncompressedDecompressor) copy(w *os.File, r io.Reader) error {
func (*uncompressedDecompressor) decompress(w io.WriteSeeker, r io.Reader) error {
_, err := crcOs.CopySparse(w, r)
return err
}
func (d *uncompressedDecompressor) close() {
if err := d.compressedFile.Close(); err != nil {
logrus.Errorf("Unable to close gz file: %q", err)
}
}