func Find()

in codecatalyst-runner/pkg/actions/find.go [13:46]


func Find(actionSearchPath string) ([]*Action, error) {
	actionSearchPath, err := filepath.Abs(actionSearchPath)
	if err != nil {
		return nil, err
	}
	actions := make([]*Action, 0)
	log.Debug().Msgf("Searching path '%s' for actions", actionSearchPath)
	err = filepath.WalkDir(actionSearchPath, func(path string, d fs.DirEntry, err error) error {
		if err != nil {
			return err
		}

		if d.Type().IsDir() {
			if _, err := os.Stat(filepath.Join(path, ".codecatalyst", "actions", "action.yml")); err == nil {
				log.Debug().Msgf("Found action: %s", path)
				action, err := Load(path)
				if err != nil {
					log.Warn().Err(err)
					return nil
				}
				actions = append(actions, action)
				if err != nil {
					return err
				}
				return filepath.SkipDir
			}
		}
		return nil
	})
	if err != nil {
		return nil, err
	}
	return actions, nil
}