Browse Source

Added grafana-cli command. Added public documentation for specifying plugin version when installing. (#5665)

Mark Henderson 9 years ago
parent
commit
39be7cf7d7

+ 5 - 1
pkg/cmd/grafana-cli/commands/commands.go

@@ -27,12 +27,16 @@ func runCommand(command func(commandLine CommandLine) error) func(context *cli.C
 var pluginCommands = []cli.Command{
 	{
 		Name:   "install",
-		Usage:  "install <plugin id>",
+		Usage:  "install <plugin id> <plugin version (optional)>",
 		Action: runCommand(installCommand),
 	}, {
 		Name:   "list-remote",
 		Usage:  "list remote available plugins",
 		Action: runCommand(listremoteCommand),
+	}, {
+		Name:   "list-versions",
+		Usage:  "list-versions <plugin id>",
+		Action: runCommand(listversionsCommand),
 	}, {
 		Name:    "update",
 		Usage:   "update <plugin id>",

+ 36 - 0
pkg/cmd/grafana-cli/commands/listversions_command.go

@@ -0,0 +1,36 @@
+package commands
+
+import (
+	"errors"
+
+	"github.com/grafana/grafana/pkg/cmd/grafana-cli/logger"
+	s "github.com/grafana/grafana/pkg/cmd/grafana-cli/services"
+)
+
+func validateVersionInput(c CommandLine) error {
+	arg := c.Args().First()
+	if arg == "" {
+		return errors.New("please specify plugin to list versions for")
+	}
+
+	return nil
+}
+
+func listversionsCommand(c CommandLine) error {
+	if err := validateVersionInput(c); err != nil {
+		return err
+	}
+
+	pluginToList := c.Args().First()
+
+	plugin, err := s.GetPlugin(pluginToList, c.GlobalString("repo"))
+	if err != nil {
+		return err
+	}
+
+	for _, i := range plugin.Versions {
+		logger.Infof("%v\n", i.Version)
+	}
+
+	return nil
+}