in scripts/go/curconvert/curconvert.go [549:592]
func (c *CurConvert) ConvertCur() error {
if err := c.ParseCur(); err != nil {
return fmt.Errorf("Error Parsing CUR Manifest: %s", err.Error())
}
result := make(chan error)
i := 0
for reportKey := range c.CurFiles {
go func(object string) {
gzipFile, err := c.DownloadCur(object)
if err != nil {
result <- fmt.Errorf("Error Downloading CUR: %s", err.Error())
return
}
parquetFile, err := c.ParquetCur(gzipFile)
if err != nil {
result <- fmt.Errorf("Error Converting CUR: %s", err.Error())
return
}
if err := c.UploadCur(parquetFile); err != nil {
result <- fmt.Errorf("Error Uploading CUR: %s", err.Error())
return
}
os.Remove(gzipFile)
os.Remove(parquetFile)
result <- nil
}(c.CurFiles[reportKey])
i++
}
// wait for jobs to complete
for w := 0; w < i; w++ {
err := <-result
if err != nil {
return err
}
}
return c.CleanCur()
}