func (f *FetcherEnumerator) Index(ch chan blobserver.BlobAndToken, dst *index.Index) { var long time.Duration for b := range ch { valid := b.ValidContents() f.mu.Lock() if valid { b := b f.Add(b.Blob) } f.stats.blobs++ f.stats.bytes += uint64(b.Size()) f.mu.Unlock() start := time.Now() r := b.Open() _, err := dst.ReceiveBlob(b.Ref(), r) if err != nil { log.Print(err) } r.Close() if elapsed := time.Now().Sub(start); elapsed > time.Second { long += elapsed fmt.Printf("elapsed %s to index sha1-%s at '%s' (cumulative %s)\n", elapsed, b.Ref().Digest(), b.Token, long) // pull some data out of the index to // describe blob? print continuation // token for easier restart? } } }