Provide dynamic auto-completion for plugin names
(_ string, ignoredPluginNames []string)
| 96 | |
| 97 | // Provide dynamic auto-completion for plugin names |
| 98 | func compListPlugins(_ string, ignoredPluginNames []string) []string { |
| 99 | var pNames []string |
| 100 | dirs := filepath.SplitList(settings.PluginsDirectory) |
| 101 | descriptor := plugin.Descriptor{ |
| 102 | Type: "cli/v1", |
| 103 | } |
| 104 | plugins, err := plugin.FindPlugins(dirs, descriptor) |
| 105 | if err == nil && len(plugins) > 0 { |
| 106 | filteredPlugins := filterPlugins(plugins, ignoredPluginNames) |
| 107 | for _, p := range filteredPlugins { |
| 108 | m := p.Metadata() |
| 109 | var shortHelp string |
| 110 | if config, ok := m.Config.(*schema.ConfigCLIV1); ok { |
| 111 | shortHelp = config.ShortHelp |
| 112 | } |
| 113 | pNames = append(pNames, fmt.Sprintf("%s\t%s", p.Metadata().Name, shortHelp)) |
| 114 | } |
| 115 | } |
| 116 | return pNames |
| 117 | } |
no test coverage detected
searching dependent graphs…