From d764b26b52f8938e50429f03a664a849e23b30bc Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Fri, 21 Sep 2018 11:07:32 -0400 Subject: Fail plugin activation if no web app and server component (#9438) --- plugin/environment.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'plugin') diff --git a/plugin/environment.go b/plugin/environment.go index 55543e239..94e5f2646 100644 --- a/plugin/environment.go +++ b/plugin/environment.go @@ -166,7 +166,9 @@ func (env *Environment) Activate(id string) (manifest *model.Manifest, activated env.activePlugins.Store(pluginInfo.Manifest.Id, activePlugin) }() - if pluginInfo.Manifest.Webapp != nil { + componentActivated := false + + if pluginInfo.Manifest.HasWebapp() { bundlePath := filepath.Clean(pluginInfo.Manifest.Webapp.BundlePath) if bundlePath == "" || bundlePath[0] == '.' { return nil, false, fmt.Errorf("invalid webapp bundle path") @@ -199,6 +201,8 @@ func (env *Environment) Activate(id string) (manifest *model.Manifest, activated ); err != nil { return nil, false, errors.Wrapf(err, "unable to rename webapp bundle: %v", id) } + + componentActivated = true } if pluginInfo.Manifest.HasServer() { @@ -207,6 +211,12 @@ func (env *Environment) Activate(id string) (manifest *model.Manifest, activated return nil, false, errors.Wrapf(err, "unable to start plugin: %v", id) } activePlugin.supervisor = supervisor + + componentActivated = true + } + + if !componentActivated { + return nil, false, fmt.Errorf("unable to start plugin: must at least have a web app or server component") } return pluginInfo.Manifest, true, nil -- cgit v1.2.3-1-g7c22