| 222 | } |
| 223 | |
| 224 | func ExecutePluginHookAt(plugin Metadata, events ...string) error { |
| 225 | for _, e := range events { |
| 226 | // apply global plugin context |
| 227 | newEnv := map[string]string{} |
| 228 | pluginContextLock.Lock() |
| 229 | for k, v := range pluginContext { |
| 230 | newEnv[k] = v |
| 231 | } |
| 232 | pluginContextLock.Unlock() |
| 233 | |
| 234 | err := executePluginHookAt(plugin, e, newEnv) |
| 235 | if err != nil { |
| 236 | return err |
| 237 | } |
| 238 | } |
| 239 | |
| 240 | return nil |
| 241 | } |
| 242 | |
| 243 | func executePluginHookAt(plugin Metadata, event string, env map[string]string) error { |
| 244 | pluginFolder := plugin.PluginFolder |