github.com/leowmjw/otto@v0.2.1-0.20160126165905-6400716cf085/plugin/discover.go (about)

     1  package plugin
     2  
     3  import (
     4  	"path/filepath"
     5  )
     6  
     7  // Discover discovers plugins that are in a given directory.
     8  //
     9  // The directory doesn't need to be absolute. For example, "." will work fine.
    10  //
    11  // This currently assumes any file matching the glob is a plugin.
    12  // In the future this may be smarter about checking that a file is
    13  // executable and so on.
    14  //
    15  // TODO: test
    16  func Discover(glob, dir string) ([]string, error) {
    17  	var err error
    18  
    19  	// Make the directory absolute if it isn't already
    20  	if !filepath.IsAbs(dir) {
    21  		dir, err = filepath.Abs(dir)
    22  		if err != nil {
    23  			return nil, err
    24  		}
    25  	}
    26  
    27  	return filepath.Glob(filepath.Join(dir, glob))
    28  }