diff options
author | Simon Ser <contact@emersion.fr> | 2020-01-20 21:37:28 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-01-20 21:37:28 +0100 |
commit | 01983eb7b5fc553e6ca7ed713ff1c07b0234059b (patch) | |
tree | f99646209f5c342ed0731ed35a25ec5f269c5f78 /plugin.go | |
parent | d19c17c6d58bcdecbb03125bd4f57b703d726ce5 (diff) | |
download | alps-01983eb7b5fc553e6ca7ed713ff1c07b0234059b.tar.gz alps-01983eb7b5fc553e6ca7ed713ff1c07b0234059b.zip |
Introduce PluginLoaderFunc
This allows registered plugins to execute code when loaded. This will
also allow the Lua support code to be a plugin.
Closes: https://todo.sr.ht/~sircmpwn/koushin/54
Diffstat (limited to 'plugin.go')
-rw-r--r-- | plugin.go | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -23,9 +23,13 @@ type Plugin interface { Close() error } -var plugins []Plugin +// PluginLoaderFunc loads plugins for the provided server. +type PluginLoaderFunc func(*Server) ([]Plugin, error) -// RegisterPlugin registers a plugin to be loaded on server startup. -func RegisterPlugin(p Plugin) { - plugins = append(plugins, p) +var pluginLoaders []PluginLoaderFunc + +// RegisterPluginLoader registers a plugin loader. The loader will be called on +// server start-up and reload. +func RegisterPluginLoader(f PluginLoaderFunc) { + pluginLoaders = append(pluginLoaders, f) } |