Просмотр исходного кода

feat(cli): adds support for dist/plugin.json location for plugins

ref #5410
bergquist 9 лет назад
Родитель
Сommit
af1c8dc5d9
1 измененных файлов с 15 добавлено и 3 удалено
  1. 15 3
      pkg/cmd/grafana-cli/services/services.go

+ 15 - 3
pkg/cmd/grafana-cli/services/services.go

@@ -33,11 +33,23 @@ func ListAllPlugins(repoUrl string) (m.PluginRepo, error) {
 }
 
 func ReadPlugin(pluginDir, pluginName string) (m.InstalledPlugin, error) {
-	pluginDataPath := path.Join(pluginDir, pluginName, "plugin.json")
-	pluginData, _ := IoHelper.ReadFile(pluginDataPath)
+	distPluginDataPath := path.Join(pluginDir, pluginName, "dist", "plugin.json")
+
+	var data []byte
+	var err error
+	data, err = IoHelper.ReadFile(distPluginDataPath)
+
+	if err != nil {
+		pluginDataPath := path.Join(pluginDir, pluginName, "plugin.json")
+		data, err = IoHelper.ReadFile(pluginDataPath)
+
+		if err != nil {
+			return m.InstalledPlugin{}, errors.New("Could not find dist/plugin.json or plugin.json on  " + pluginName + " in " + pluginDir)
+		}
+	}
 
 	res := m.InstalledPlugin{}
-	json.Unmarshal(pluginData, &res)
+	json.Unmarshal(data, &res)
 
 	if res.Info.Version == "" {
 		res.Info.Version = "0.0.0"