ls_command.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package commands
  2. import (
  3. "errors"
  4. "fmt"
  5. "github.com/fatih/color"
  6. "github.com/grafana/grafana/pkg/cmd/grafana-cli/log"
  7. m "github.com/grafana/grafana/pkg/cmd/grafana-cli/models"
  8. s "github.com/grafana/grafana/pkg/cmd/grafana-cli/services"
  9. )
  10. var ls_getPlugins func(path string) []m.InstalledPlugin = s.GetLocalPlugins
  11. var validateLsCommand = func(pluginDir string) error {
  12. if pluginDir == "" {
  13. return errors.New("missing path flag")
  14. }
  15. log.Debug("plugindir: " + pluginDir + "\n")
  16. pluginDirInfo, err := s.IoHelper.Stat(pluginDir)
  17. if err != nil {
  18. return fmt.Errorf("error: %s", err)
  19. }
  20. if pluginDirInfo.IsDir() == false {
  21. return errors.New("plugin path is not a directory")
  22. }
  23. return nil
  24. }
  25. func lsCommand(c CommandLine) error {
  26. pluginDir := c.GlobalString("pluginsDir")
  27. if err := validateLsCommand(pluginDir); err != nil {
  28. return err
  29. }
  30. plugins := ls_getPlugins(pluginDir)
  31. if len(plugins) > 0 {
  32. log.Info("installed plugins:\n")
  33. }
  34. for _, plugin := range plugins {
  35. log.Infof("%s %s %s \n", plugin.Id, color.YellowString("@"), plugin.Info.Version)
  36. }
  37. return nil
  38. }