utils/gzip-util.go

40 lines
852 B
Go
Raw Normal View History

// Copyright (c) 2024 Celestino Amoroso (celestino.amoroso@gmail.com).
// All rights reserved.
2024-02-16 15:51:28 +01:00
// gzip-util.go
package utils
import (
"bufio"
"compress/gzip"
"fmt"
"io"
"strings"
)
const GZIP_SUFFIX = ".gz"
func CreateGzipReader(in io.Reader) (reader *bufio.Reader, err error) {
inflate, err := gzip.NewReader(in)
if err != nil {
fmt.Errorf("Can't inflate gzipped input stream: %v", err)
} else {
reader = bufio.NewReader(inflate)
}
return
}
func CreateGzipFile(in io.Reader, fileName string) (reader *bufio.Reader, err error) {
if len(fileName) > 0 && strings.HasSuffix(fileName, GZIP_SUFFIX) {
inflate, err := gzip.NewReader(in)
if err != nil {
fmt.Errorf("Can't inflate gzipped input stream %#v: %v", fileName, err)
} else {
reader = bufio.NewReader(inflate)
}
} else {
reader = bufio.NewReader(in)
}
return
}