3 function module_ref:preinit()
4 self._dependencies = {}
6 local depfile = io.open(self._path .. "/.txt")
8 local data = depfile:read()
10 self._dependencies = data:split("\n")
14 function module_ref:init()
18 function module_ref:start()
20 require(self._path .. "src/init")
23 local module_manager = {}
25 module_manager.module_path = "modules/"
27 function module_manager:init()
29 for modulename in lfs.dir(self.module_path) do
30 if modulename:sub(1, 1) ~= "." then
31 local m = ObjectMgr.create()
33 m._path = self.module_path .. modulename .. "/"
34 m:add_proto(module_ref)
36 self._modules[modulename] = m
41 function module_manager:start_module(name)
42 local m = self._modules[name]
44 error("Failed to start module '" .. name .. "'.")
45 elseif m._started then
48 for _, dep in ipairs(m._dependencies) do
49 self:start_module(dep)