INNER CODE UNIT · Go
getCompressionWriter
offen/docker-volume-backup · cmd/backup/archive.go:95
func getCompressionWriter(file *os.File, algo string, concurrency int) (io.WriteCloser, error) {
switch algo {
case "none":
return &passThroughWriteCloser{file}, nil
case "gz":
w, err := pgzip.NewWriterLevel(file, 5)
if err != nil {
return nil, errwrap.Wrap(err, "gzip error")
}
if concurrency == 0 {
concurrency = runtime.GOMAXPROCS(0)
}
if err := w.SetConcurrency(1<<20, concurrency); err != nil {
return nil, errwrap.Wrap(err, "error setting concurrency")
}