summaryrefslogtreecommitdiffstats
path: root/plugin
diff options
context:
space:
mode:
authorChris <ccbrown112@gmail.com>2018-03-07 13:53:07 -0600
committerChristopher Brown <ccbrown112@gmail.com>2018-03-07 13:57:59 -0600
commit98e1231fcc6f12eedad2d5fd7a28bf9d349dd853 (patch)
tree19eb81cd8040114248a8b1162ab6ffe516813752 /plugin
parente4ddad16bfe15ac1c1b6a0334df084bbb334d4e3 (diff)
downloadchat-98e1231fcc6f12eedad2d5fd7a28bf9d349dd853.tar.gz
chat-98e1231fcc6f12eedad2d5fd7a28bf9d349dd853.tar.bz2
chat-98e1231fcc6f12eedad2d5fd7a28bf9d349dd853.zip
respect plugin manifest webapp bundle_path (#8393)
Diffstat (limited to 'plugin')
-rw-r--r--plugin/pluginenv/environment.go21
1 files changed, 17 insertions, 4 deletions
diff --git a/plugin/pluginenv/environment.go b/plugin/pluginenv/environment.go
index f53021f74..adc9ddbde 100644
--- a/plugin/pluginenv/environment.go
+++ b/plugin/pluginenv/environment.go
@@ -8,6 +8,7 @@ import (
"fmt"
"io/ioutil"
"net/http"
+ "path/filepath"
"sync"
"github.com/pkg/errors"
@@ -163,12 +164,24 @@ func (env *Environment) ActivatePlugin(id string) error {
return fmt.Errorf("env missing webapp path, cannot activate plugin: %v", id)
}
- webappBundle, err := ioutil.ReadFile(fmt.Sprintf("%s/%s/webapp/%s_bundle.js", env.searchPath, id, id))
+ bundlePath := filepath.Clean(bundle.Manifest.Webapp.BundlePath)
+ if bundlePath == "" || bundlePath[0] == '.' {
+ return fmt.Errorf("invalid webapp bundle path")
+ }
+ bundlePath = filepath.Join(env.searchPath, id, bundlePath)
+
+ webappBundle, err := ioutil.ReadFile(bundlePath)
if err != nil {
- if supervisor != nil {
- supervisor.Stop()
+ // Backwards compatibility for plugins where webapp.bundle_path was ignored. This should
+ // be removed eventually.
+ if webappBundle2, err2 := ioutil.ReadFile(fmt.Sprintf("%s/%s/webapp/%s_bundle.js", env.searchPath, id, id)); err2 == nil {
+ webappBundle = webappBundle2
+ } else {
+ if supervisor != nil {
+ supervisor.Stop()
+ }
+ return errors.Wrapf(err, "unable to read webapp bundle: %v", id)
}
- return errors.Wrapf(err, "unable to read webapp bundle: %v", id)
}
err = ioutil.WriteFile(fmt.Sprintf("%s/%s_bundle.js", env.webappPath, id), webappBundle, 0644)