| package plugin |
| |
| import ( |
| "path/filepath" |
| ) |
| |
| // Discover discovers plugins that are in a given directory. |
| // |
| // The directory doesn't need to be absolute. For example, "." will work fine. |
| // |
| // This currently assumes any file matching the glob is a plugin. |
| // In the future this may be smarter about checking that a file is |
| // executable and so on. |
| // |
| // TODO: test |
| func Discover(glob, dir string) ([]string, error) { |
| var err error |
| |
| // Make the directory absolute if it isn't already |
| if !filepath.IsAbs(dir) { |
| dir, err = filepath.Abs(dir) |
| if err != nil { |
| return nil, err |
| } |
| } |
| |
| return filepath.Glob(filepath.Join(dir, glob)) |
| } |