- if len(args) <= 0 {
- InfoBar.Error("Not enough arguments, see 'help commands'")
- return
- }
-
- valid := true
- switch args[0] {
- case "list":
- for _, pl := range config.Plugins {
- var en string
- if pl.IsEnabled() {
- en = "enabled"
- } else {
- en = "disabled"
- }
- WriteLog(fmt.Sprintf("%s: %s", pl.Name, en))
- if pl.Default {
- WriteLog(" (default)\n")
- } else {
- WriteLog("\n")
- }
- }
- WriteLog("Default plugins come pre-installed with micro.")
- case "version":
- if len(args) <= 1 {
- InfoBar.Error("No plugin provided to give info for")
- return
- }
- found := false
- for _, pl := range config.Plugins {
- if pl.Name == args[1] {
- found = true
- if pl.Info == nil {
- InfoBar.Message("Sorry no version for", pl.Name)
- return
- }
-
- WriteLog("Version: " + pl.Info.Vstr + "\n")
- }
- }
- if !found {
- InfoBar.Message(args[1], "is not installed")
- }
- case "info":
- if len(args) <= 1 {
- InfoBar.Error("No plugin provided to give info for")
- return
- }
- found := false
- for _, pl := range config.Plugins {
- if pl.Name == args[1] {
- found = true
- if pl.Info == nil {
- InfoBar.Message("Sorry no info for ", pl.Name)
- return
- }
-
- var buffer bytes.Buffer
- buffer.WriteString("Name: ")
- buffer.WriteString(pl.Info.Name)
- buffer.WriteString("\n")
- buffer.WriteString("Description: ")
- buffer.WriteString(pl.Info.Desc)
- buffer.WriteString("\n")
- buffer.WriteString("Website: ")
- buffer.WriteString(pl.Info.Site)
- buffer.WriteString("\n")
- buffer.WriteString("Installation link: ")
- buffer.WriteString(pl.Info.Install)
- buffer.WriteString("\n")
- buffer.WriteString("Version: ")
- buffer.WriteString(pl.Info.Vstr)
- buffer.WriteString("\n")
- buffer.WriteString("Requirements:")
- buffer.WriteString("\n")
- for _, r := range pl.Info.Require {
- buffer.WriteString(" - ")
- buffer.WriteString(r)
- buffer.WriteString("\n")
- }
-
- WriteLog(buffer.String())
- }
- }
- if !found {
- InfoBar.Message(args[1], "is not installed")
- return
- }
- default:
- InfoBar.Error("Not a valid plugin command")