func newPlugins()

in plugin.go [214:255]


func newPlugins() (*plugins, error) {
	localDir := os.Getenv("OPS_ROOT_PLUGIN")
	localOlarisFolders := make([]string, 0)
	opsOlarisFolders := make([]string, 0)

	// Search in directory (localDir/olaris-*)
	dir := filepath.Join(localDir, "olaris-*")
	olarisFolders, err := filepath.Glob(dir)
	if err != nil {
		return nil, err
	}

	// filter all folders that are do not contain opsfile.yaml
	for _, folder := range olarisFolders {
		if !isDir(folder) || !exists(folder, OPSFILE) {
			continue
		}
		localOlarisFolders = append(localOlarisFolders, folder)
	}

	// Search in ~/.ops/olaris-*
	opsHome, err := homedir.Expand("~/.ops")
	if err != nil {
		return nil, err
	}

	olarisOpsFolders, err := filepath.Glob(filepath.Join(opsHome, "olaris-*"))
	if err != nil {
		return nil, err
	}
	for _, folder := range olarisOpsFolders {
		if !isDir(folder) || !exists(folder, OPSFILE) {
			continue
		}
		opsOlarisFolders = append(opsOlarisFolders, folder)
	}

	return &plugins{
		local: localOlarisFolders,
		ops:   opsOlarisFolders,
	}, nil
}