Browse Source

Revert "removes dependencies install for plugins"

This reverts commit 47e363ea157142fbd9b9912b29091dcb5bb085eb.
bergquist 7 years ago
parent
commit
5bbe047eaa

+ 8 - 1
pkg/cmd/grafana-cli/commands/install_command.go

@@ -91,7 +91,14 @@ func InstallPlugin(pluginName, version string, c CommandLine) error {
 	}
 
 	logger.Infof("%s Installed %s successfully \n", color.GreenString("✔"), pluginName)
-	return nil
+
+	res, _ := s.ReadPlugin(pluginFolder, pluginName)
+	for _, v := range res.Dependencies.Plugins {
+		InstallPlugin(v.Id, version, c)
+		logger.Infof("Installed dependency: %v ✔\n", v.Id)
+	}
+
+	return err
 }
 
 func SelectVersion(plugin m.Plugin, version string) (m.Version, error) {

+ 2 - 1
pkg/cmd/grafana-cli/models/model.go

@@ -14,7 +14,8 @@ type InstalledPlugin struct {
 }
 
 type Dependencies struct {
-	GrafanaVersion string `json:"grafanaVersion"`
+	GrafanaVersion string   `json:"grafanaVersion"`
+	Plugins        []Plugin `json:"plugins"`
 }
 
 type PluginInfo struct {

+ 13 - 1
pkg/plugins/models.go

@@ -59,6 +59,10 @@ func (pb *PluginBase) registerPlugin(pluginDir string) error {
 		plog.Info("Registering plugin", "name", pb.Name)
 	}
 
+	if len(pb.Dependencies.Plugins) == 0 {
+		pb.Dependencies.Plugins = []PluginDependencyItem{}
+	}
+
 	if pb.Dependencies.GrafanaVersion == "" {
 		pb.Dependencies.GrafanaVersion = "*"
 	}
@@ -75,7 +79,8 @@ func (pb *PluginBase) registerPlugin(pluginDir string) error {
 }
 
 type PluginDependencies struct {
-	GrafanaVersion string `json:"grafanaVersion"`
+	GrafanaVersion string                 `json:"grafanaVersion"`
+	Plugins        []PluginDependencyItem `json:"plugins"`
 }
 
 type PluginInclude struct {
@@ -91,6 +96,13 @@ type PluginInclude struct {
 	Id string `json:"-"`
 }
 
+type PluginDependencyItem struct {
+	Type    string `json:"type"`
+	Id      string `json:"id"`
+	Name    string `json:"name"`
+	Version string `json:"version"`
+}
+
 type PluginInfo struct {
 	Author      PluginInfoLink      `json:"author"`
 	Description string              `json:"description"`