in log/rollwriter/roll_writer.go [394:422]
func compressFile(src, dst string) (err error) {
f, err := os.Open(src)
if err != nil {
return fmt.Errorf("failed to open file: %v", err)
}
defer f.Close()
gzf, err := os.OpenFile(dst, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666)
if err != nil {
return fmt.Errorf("failed to open compressed file: %v", err)
}
defer gzf.Close()
gz := gzip.NewWriter(gzf)
defer func() {
gz.Close()
if err != nil {
os.Remove(dst)
err = fmt.Errorf("failed to compress file: %v", err)
} else {
os.Remove(src)
}
}()
if _, err := io.Copy(gz, f); err != nil {
return err
}
return nil
}