func()

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()
}