Newer
Older
GoModules / PluginSystem / plugins / pluginsHelper.go
root on 25 Jun 2022 648 bytes simple plugin system added
  1. package plugins
  2.  
  3. //import "fmt"
  4.  
  5. type PluginInfo struct {
  6. Name string
  7. About string
  8. Commands Command
  9. }
  10.  
  11. type Command struct {
  12. Name string
  13. Callback func(args ...interface{})(string)
  14. }
  15.  
  16. var Plugins []PluginInfo
  17.  
  18. func (p *PluginInfo) AddPluginInfo() {
  19. Plugins = append(Plugins, *p)
  20. }
  21.  
  22. func (p *PluginInfo) Handle() {
  23.  
  24. }
  25.  
  26. func RunPlugin(cmd string, arg string)string{
  27. var result string
  28. for _, element := range Plugins {
  29. // fmt.Println("cmd:", key, "=>", "info:", element) // DEBUG
  30. if element.Commands.Name == cmd {
  31. result = element.Commands.Callback(arg)
  32. return result
  33. }
  34. result = "command not found"
  35. }
  36. return result
  37. }
Buy Me A Coffee