summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarrison Healey <harrisonmhealey@gmail.com>2017-12-05 13:25:49 -0500
committerChris <ccbrown112@gmail.com>2017-12-05 12:25:49 -0600
commit36777057f2b92bd3c0a222f2266eef2cc52f57d7 (patch)
treed3df64ec075609078c4f1bc967d07f631d834390
parent154a502f8e85df2d17f5d439c24fe129ee6be3dd (diff)
downloadchat-36777057f2b92bd3c0a222f2266eef2cc52f57d7.tar.gz
chat-36777057f2b92bd3c0a222f2266eef2cc52f57d7.tar.bz2
chat-36777057f2b92bd3c0a222f2266eef2cc52f57d7.zip
PLT-8289 Added ability to change location of client plugins (#7942)
-rw-r--r--cmd/platform/server.go20
-rw-r--r--config/default.json1
-rw-r--r--model/config.go22
-rw-r--r--web/web.go2
4 files changed, 26 insertions, 19 deletions
diff --git a/cmd/platform/server.go b/cmd/platform/server.go
index 51f5fa67e..67e2dcc56 100644
--- a/cmd/platform/server.go
+++ b/cmd/platform/server.go
@@ -75,18 +75,14 @@ func runServer(configFileLocation string) {
a.LoadLicense()
}
- if webappDir, ok := utils.FindDir(model.CLIENT_DIR); ok {
- a.InitPlugins(*a.Config().PluginSettings.Directory, webappDir+"/plugins")
- utils.AddConfigListener(func(prevCfg, cfg *model.Config) {
- if *cfg.PluginSettings.Enable {
- a.InitPlugins(*cfg.PluginSettings.Directory, webappDir+"/plugins")
- } else {
- a.ShutDownPlugins()
- }
- })
- } else {
- l4g.Error("Unable to find webapp directory, could not initialize plugins")
- }
+ a.InitPlugins(*a.Config().PluginSettings.Directory, *a.Config().PluginSettings.ClientDirectory)
+ utils.AddConfigListener(func(prevCfg, cfg *model.Config) {
+ if *cfg.PluginSettings.Enable {
+ a.InitPlugins(*cfg.PluginSettings.Directory, *a.Config().PluginSettings.ClientDirectory)
+ } else {
+ a.ShutDownPlugins()
+ }
+ })
a.StartServer()
api4.Init(a, a.Srv.Router, false)
diff --git a/config/default.json b/config/default.json
index 1c13c0f09..14acb47d0 100644
--- a/config/default.json
+++ b/config/default.json
@@ -349,6 +349,7 @@
"Enable": true,
"EnableUploads": false,
"Directory": "./plugins",
+ "ClientDirectory": "./client/plugins",
"Plugins": {},
"PluginStates": {}
}
diff --git a/model/config.go b/model/config.go
index 232d40b22..ac1d034d4 100644
--- a/model/config.go
+++ b/model/config.go
@@ -149,7 +149,8 @@ const (
DATA_RETENTION_SETTINGS_DEFAULT_FILE_RETENTION_DAYS = 365
DATA_RETENTION_SETTINGS_DEFAULT_DELETION_JOB_START_TIME = "02:00"
- PLUGIN_SETTINGS_DEFAULT_DIRECTORY = "./plugins"
+ PLUGIN_SETTINGS_DEFAULT_DIRECTORY = "./plugins"
+ PLUGIN_SETTINGS_DEFAULT_CLIENT_DIRECTORY = "./client/plugins"
)
type ServiceSettings struct {
@@ -1476,11 +1477,12 @@ type PluginState struct {
}
type PluginSettings struct {
- Enable *bool
- EnableUploads *bool
- Directory *string
- Plugins map[string]interface{}
- PluginStates map[string]*PluginState
+ Enable *bool
+ EnableUploads *bool
+ Directory *string
+ ClientDirectory *string
+ Plugins map[string]interface{}
+ PluginStates map[string]*PluginState
}
func (s *PluginSettings) SetDefaults() {
@@ -1500,6 +1502,14 @@ func (s *PluginSettings) SetDefaults() {
*s.Directory = PLUGIN_SETTINGS_DEFAULT_DIRECTORY
}
+ if s.ClientDirectory == nil {
+ s.ClientDirectory = NewString(PLUGIN_SETTINGS_DEFAULT_CLIENT_DIRECTORY)
+ }
+
+ if *s.ClientDirectory == "" {
+ *s.ClientDirectory = PLUGIN_SETTINGS_DEFAULT_CLIENT_DIRECTORY
+ }
+
if s.Plugins == nil {
s.Plugins = make(map[string]interface{})
}
diff --git a/web/web.go b/web/web.go
index 40cc4284b..321d83a75 100644
--- a/web/web.go
+++ b/web/web.go
@@ -26,7 +26,7 @@ func Init(api3 *api.API) {
l4g.Debug("Using client directory at %v", staticDir)
staticHandler := staticHandler(http.StripPrefix("/static/", http.FileServer(http.Dir(staticDir))))
- pluginHandler := pluginHandler(api3.App.Config, http.StripPrefix("/static/plugins/", http.FileServer(http.Dir(staticDir+"plugins/"))))
+ pluginHandler := pluginHandler(api3.App.Config, http.StripPrefix("/static/plugins/", http.FileServer(http.Dir(*api3.App.Config().PluginSettings.ClientDirectory))))
if *api3.App.Config().ServiceSettings.WebserverMode == "gzip" {
staticHandler = gziphandler.GzipHandler(staticHandler)