MCPcopy Index your code
hub / github.com/gotify/server / loadPlugins

Method loadPlugins

plugin/manager.go:219–254  ·  view source on GitHub ↗
(directory string)

Source from the content-addressed store, hash-verified

217}
218
219func (m *Manager) loadPlugins(directory string) error {
220 if directory == "" {
221 return nil
222 }
223
224 pluginFiles, err := os.ReadDir(directory)
225 if err != nil {
226 return fmt.Errorf("error while reading directory %s", err)
227 }
228 for _, f := range pluginFiles {
229 if f.IsDir() {
230 continue
231 }
232
233 name := f.Name()
234 if strings.HasPrefix(name, ".") {
235 continue
236 }
237
238 pluginPath := filepath.Join(directory, "./", name)
239
240 fmt.Println("Loading plugin", pluginPath)
241 pRaw, err := plugin.Open(pluginPath)
242 if err != nil {
243 return pluginFileLoadError{name, err}
244 }
245 compatPlugin, err := compat.Wrap(pRaw)
246 if err != nil {
247 return pluginFileLoadError{name, err}
248 }
249 if err := m.LoadPlugin(compatPlugin); err != nil {
250 return pluginFileLoadError{name, err}
251 }
252 }
253 return nil
254}
255
256// LoadPlugin loads a compat plugin, exported to sideload plugins for testing purposes.
257func (m *Manager) LoadPlugin(compatPlugin compat.Plugin) error {

Calls 4

LoadPluginMethod · 0.95
WrapFunction · 0.92
ErrorfMethod · 0.80
OpenMethod · 0.80