simple plugin search

This commit is contained in:
boombuler
2016-09-27 21:25:57 +02:00
parent 83c1136ac5
commit f3f4790103
2 changed files with 29 additions and 0 deletions

View File

@@ -118,6 +118,19 @@ func PluginCmd(args []string) {
}
case "update":
UpdatePlugins()
case "search":
searchText := strings.Join(args[1:], " ")
plugins := SearchPlugin(searchText)
messenger.Message(len(plugins), " plugins found")
for _, p := range plugins {
messenger.AddLog("\n")
messenger.AddLog(p.String())
}
if len(plugins) > 0 {
if CurView().Type != vtLog {
ToggleLog([]string{})
}
}
}
} else {
messenger.Error("Not enough arguments")

View File

@@ -71,6 +71,22 @@ type PluginDependency struct {
// PluginDependencies is a slice of PluginDependency
type PluginDependencies []*PluginDependency
func (pp *PluginPackage) String() string {
buf := new(bytes.Buffer)
buf.WriteString("Plugin: ")
buf.WriteString(pp.Name)
buf.WriteRune('\n')
if pp.Author != "" {
buf.WriteString("Author: ")
buf.WriteString(pp.Author)
buf.WriteRune('\n')
}
if pp.Description != "" {
buf.WriteString(pp.Description)
}
return buf.String()
}
func fetchAllSources(count int, fetcher func(i int) PluginPackages) PluginPackages {
wgQuery := new(sync.WaitGroup)
wgQuery.Add(count)