Add ZipLevel, issue #48

This commit is contained in:
Milan Nikolic
2026-06-24 07:55:16 +02:00
parent 04a047aa2e
commit 3f0ae41456
5 changed files with 117 additions and 2 deletions
+11
View File
@@ -3,6 +3,7 @@ package cbconvert
import (
"archive/tar"
"archive/zip"
"compress/flate"
"context"
"fmt"
"io"
@@ -50,6 +51,13 @@ func (c *Converter) archiveSaveZip(fileName string) error {
z := zip.NewWriter(zipFile)
if c.Opts.ZipLevel >= 1 {
level := c.Opts.ZipLevel
z.RegisterCompressor(zip.Deflate, func(out io.Writer) (io.WriteCloser, error) {
return flate.NewWriter(out, level)
})
}
files, err := os.ReadDir(c.Workdir)
if err != nil {
return fmt.Errorf("archiveSaveZip: %w", err)
@@ -72,6 +80,9 @@ func (c *Converter) archiveSaveZip(fileName string) error {
}
zipInfo.Method = zip.Deflate
if c.Opts.ZipLevel == 0 {
zipInfo.Method = zip.Store
}
w, err := z.CreateHeader(zipInfo)
if err != nil {
return fmt.Errorf("archiveSaveZip: %w", err)