39 lines
629 B
Lua
39 lines
629 B
Lua
local hooks, M = {}, {};
|
|
local allowed_hooks = {
|
|
"install_plugins",
|
|
"setup_mappings",
|
|
"ready",
|
|
}
|
|
|
|
local function has_value (tab, val)
|
|
for _, value in ipairs(tab) do
|
|
if value == val then
|
|
return true
|
|
end
|
|
end
|
|
|
|
return false
|
|
end
|
|
|
|
M.add = function(name, fn)
|
|
if not(has_value(allowed_hooks, name)) then
|
|
error("Custom lua uses unallowed hook " .. name)
|
|
end
|
|
if hooks[name] == nil then
|
|
hooks[name] = {}
|
|
end
|
|
table.insert(hooks[name], fn);
|
|
end
|
|
|
|
M.run = function(name, args)
|
|
if hooks[name] == nil then
|
|
return;
|
|
end
|
|
|
|
for _, hook in pairs(hooks[name]) do
|
|
hook(args)
|
|
end
|
|
end
|
|
|
|
return M;
|