Plugin: Validate plugin version on installation (#71488)
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"runtime"
|
||||
"strings"
|
||||
|
||||
"github.com/Masterminds/semver/v3"
|
||||
"github.com/fatih/color"
|
||||
|
||||
"github.com/grafana/grafana/pkg/cmd/grafana-cli/logger"
|
||||
@@ -22,16 +23,27 @@ import (
|
||||
const installArgsSize = 2
|
||||
|
||||
func validateInput(c utils.CommandLine) error {
|
||||
if c.Args().Len() > installArgsSize {
|
||||
args := c.Args()
|
||||
argsLen := args.Len()
|
||||
|
||||
if argsLen > installArgsSize {
|
||||
logger.Info(color.RedString("Please specify the correct format. For example ./grafana cli (<command arguments>) plugins install <plugin ID> (<plugin version>)\n\n"))
|
||||
return errors.New("install only supports 2 arguments: plugin and version")
|
||||
}
|
||||
|
||||
arg := c.Args().First()
|
||||
arg := args.First()
|
||||
if arg == "" {
|
||||
return errors.New("please specify plugin to install")
|
||||
}
|
||||
|
||||
if argsLen == installArgsSize {
|
||||
version := args.Get(1)
|
||||
_, err := semver.NewVersion(version)
|
||||
if err != nil {
|
||||
return fmt.Errorf("the provided version (%s) is invalid", version)
|
||||
}
|
||||
}
|
||||
|
||||
pluginsDir := c.PluginDirectory()
|
||||
if pluginsDir == "" {
|
||||
return errors.New("missing pluginsDir flag")
|
||||
|
||||
Reference in New Issue
Block a user