From ae6b69d40dc91a2d85270b79c74e41aee5dbc155 Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Fri, 13 Apr 2018 09:47:40 +0200 Subject: [PATCH] Save descriptor along with plugin instance. --- app/server.go | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/app/server.go b/app/server.go index 268090e..cf36b0c 100644 --- a/app/server.go +++ b/app/server.go @@ -9,12 +9,17 @@ import ( "git.icedream.tech/icedream/uplink/plugins" ) +type registeredPlugin struct { + Instance plugins.PluginInstance + Descriptor plugins.PluginDescriptor +} + type App struct { Server *httpserver.Server Authenticator authentication.Authenticator ChannelManager *channels.ChannelManager - plugins []plugins.PluginInstance + plugins []registeredPlugin } func New() *App { @@ -23,7 +28,7 @@ func New() *App { Authenticator: new(authentication.DummyAuthenticator), ChannelManager: channels.NewChannelManager(), - plugins: []plugins.PluginInstance{}, + plugins: []registeredPlugin{}, } } @@ -40,14 +45,18 @@ func (app *App) UsePlugin(plugin *plugins.Plugin) { p.SetAuthenticator(app.Authenticator) } - log.Println("Plugin initialized:", plugin.Descriptor.Name) + log.Println("Plugin registered:", plugin.Descriptor.Name) - app.plugins = append(app.plugins, pluginInstance) + app.plugins = append(app.plugins, registeredPlugin{ + Instance: pluginInstance, + Descriptor: plugin.Descriptor, + }) } func (app *App) Init() { for _, plugin := range app.plugins { - plugin.Init() + plugin.Instance.Init() + log.Println("Plugin initialized:", plugin.Descriptor.Name) } }