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

plugin: fix path for app plugins on windows

This fixes when an app that contains a plugin (which means it has
a filepath with more parts) gets a back slash in the path for the
plugin module. The string replace now replaces all back slashes and
not just the first one.
Daniel Lee 8 лет назад
Родитель
Сommit
ccf1a5124b
2 измененных файлов с 3 добавлено и 3 удалено
  1. 1 1
      pkg/plugins/frontend_plugin.go
  2. 2 2
      pkg/plugins/frontend_plugin_test.go

+ 1 - 1
pkg/plugins/frontend_plugin.go

@@ -40,7 +40,7 @@ func getPluginLogoUrl(pluginType, path, baseUrl string) string {
 }
 
 func (fp *FrontendPluginBase) setPathsBasedOnApp(app *AppPlugin) {
-	appSubPath := strings.Replace(strings.Replace(fp.PluginDir, app.PluginDir, "", 1), "\\", "/", 1)
+	appSubPath := strings.Replace(strings.Replace(fp.PluginDir, app.PluginDir, "", 1), "\\", "/", -1)
 	fp.IncludedInAppId = app.Id
 	fp.BaseUrl = app.BaseUrl
 

+ 2 - 2
pkg/plugins/frontend_plugin_test.go

@@ -14,7 +14,7 @@ func TestFrontendPlugin(t *testing.T) {
 
 		fp := &FrontendPluginBase{
 			PluginBase: PluginBase{
-				PluginDir: "c:\\grafana\\public\\app\\plugins\\app\\testdata\\datasource",
+				PluginDir: "c:\\grafana\\public\\app\\plugins\\app\\testdata\\datasources\\datasource",
 				BaseUrl:   "fpbase",
 			},
 		}
@@ -29,6 +29,6 @@ func TestFrontendPlugin(t *testing.T) {
 		}
 		fp.setPathsBasedOnApp(app)
 
-		So(fp.Module, ShouldEqual, "app/plugins/app/testdata/datasource/module")
+		So(fp.Module, ShouldEqual, "app/plugins/app/testdata/datasources/datasource/module")
 	})
 }