archive: Use compression level when generating archive (MR 25)

This commit is contained in:
Clayton Craft
2023-02-21 12:37:46 -08:00
parent fd11f4a627
commit ba1e1a77db

View File

@@ -284,9 +284,26 @@ func (archive *Archive) writeCompressed(path string, mode os.FileMode) error {
switch archive.compress_format {
case FormatGzip:
compressor = gzip.NewWriter(fd)
level := gzip.DefaultCompression
switch archive.compress_level {
case LevelBest:
level = gzip.BestCompression
case LevelFast:
level = gzip.BestSpeed
}
compressor, err = gzip.NewWriterLevel(fd, level)
if err != nil {
return err
}
case FormatZstd:
compressor, err = zstd.NewWriter(fd)
level := zstd.SpeedDefault
switch archive.compress_level {
case LevelBest:
level = zstd.SpeedBestCompression
case LevelFast:
level = zstd.SpeedFastest
}
compressor, err = zstd.NewWriter(fd, zstd.WithEncoderLevel(level))
if err != nil {
return err
}