utils/gzip-util.go

37 lines
756 B
Go

// 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
}