code: func getFileListIntoChan(pos *posTracker, fileChan chan string) {
  	filepath.Walk(
  		*whisperDirectory,
  		func(path string, info os.FileInfo, err error) error {
  			if path == *whisperDirectory {
  				return nil
  			}
  			name := getMetricName(path)
  			if !nameFilter.Match([]byte(getMetricName(name))) {
  				log.Debugf("Skipping file %s with name %s", path, name)
  				atomic.AddUint32(&skippedCount, 1)
  				return nil
  			}
  			if len(path) < 4 || path[len(path)-4:] != ".wsp" {
  				return nil
  			}
  			if pos != nil && pos.IsDone(path) {
  				log.Debugf("Skipping file %s because it was listed as already done", path)
  				return nil
  			}
  
  			fileChan <- path
  			return nil
  		},
  	)
  
  	close(fileChan)
  }
docs: // scan a directory and feed the list of whisper files relative to base into the given channel