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