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
}