aboutsummaryrefslogtreecommitdiff
path: root/plugin.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin.go')
-rw-r--r--plugin.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/plugin.go b/plugin.go
index 77000f2..4e46aaf 100644
--- a/plugin.go
+++ b/plugin.go
@@ -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)
}