code: func (b *Builder) Run() error {
  	wg := &errgroup.Group{}
  	root, err := filepath.EvalSymlinks(b.RootPath)
  	if err != nil {
  		return err
  	}
  	err = filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
  		if info == nil {
  			return filepath.SkipDir
  		}
  
  		base := strings.ToLower(filepath.Base(path))
  		if strings.HasPrefix(base, "_") {
  			return filepath.SkipDir
  		}
  		for _, f := range b.IgnoredFolders {
  			if strings.ToLower(f) == base {
  				if info.IsDir() {
  					return filepath.SkipDir
  				} else {
  					return nil
  				}
  			}
  		}
  		if !info.IsDir() {
  			wg.Go(func() error {
  				return b.process(path)
  			})
  		}
  		return nil
  	})
  	if err != nil {
  		return err
  	}
  	if err := wg.Wait(); err != nil {
  		return err
  	}
  	return b.dump()
  }
docs: // Run the builder.