// Copyright (c) 2024 Celestino Amoroso (celestino.amoroso@gmail.com). // All rights reserved. // 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) { var inflate *gzip.Reader if inflate, err = gzip.NewReader(in); err != nil { err = 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) { var inflate *gzip.Reader if len(fileName) > 0 && strings.HasSuffix(fileName, GZIP_SUFFIX) { if inflate, err = gzip.NewReader(in); err != nil { err = fmt.Errorf("can't inflate gzipped input stream %#v: %v", fileName, err) } else { reader = bufio.NewReader(inflate) } } else { reader = bufio.NewReader(in) } return }