in packages/packages.go [259:288]
func (i *FileSystemIndexer) getPackagePaths(packagesPath string) ([]string, error) {
var foundPaths []string
err := filepath.WalkDir(packagesPath, func(path string, info os.DirEntry, err error) error {
if os.IsNotExist(err) {
return filepath.SkipDir
}
if err != nil {
return err
}
shouldIndex, err := i.walkerFn(packagesPath, path, info)
if err != nil {
return err
}
if !shouldIndex {
return nil
}
foundPaths = append(foundPaths, path)
if info.IsDir() {
// If a directory is being added, consider all its contents part of
// the package and continue.
return filepath.SkipDir
}
return nil
})
if err != nil {
return nil, fmt.Errorf("listing packages failed (path: %s): %w", packagesPath, err)
}
return foundPaths, nil
}