diff options
| -rw-r--r-- | xmake/modules/private/service/config.lua | 16 | ||||
| -rw-r--r-- | xmake/modules/private/service/remote_build_server.lua | 2 | ||||
| -rw-r--r-- | xmake/modules/private/service/server.lua | 17 |
3 files changed, 32 insertions, 3 deletions
diff --git a/xmake/modules/private/service/config.lua b/xmake/modules/private/service/config.lua index 629561e15..bbc39c465 100644 --- a/xmake/modules/private/service/config.lua +++ b/xmake/modules/private/service/config.lua @@ -30,7 +30,7 @@ function _generate_configfile() remote_build = { server = { listen = "127.0.0.1:90091" - } + }, client = { connect = "127.0.0.1:90091" } @@ -49,6 +49,20 @@ function configs() return _g.configs end +-- get the given config, e.g. config.get("remote_build.server.listen") +function get(name) + local value = configs() + for _, key in ipairs(name:split('.', {plain = true})) do + if type(value) == "table" then + value = value[key] + else + value = nil + break + end + end + return value +end + -- load config function load() assert(not _g.configs, "config has been loaded!") diff --git a/xmake/modules/private/service/remote_build_server.lua b/xmake/modules/private/service/remote_build_server.lua index 19e5f8c93..9e2183413 100644 --- a/xmake/modules/private/service/remote_build_server.lua +++ b/xmake/modules/private/service/remote_build_server.lua @@ -19,6 +19,7 @@ -- -- imports +import("private.service.config") import("private.service.server") -- define module @@ -28,6 +29,7 @@ local super = remote_build_server:class() -- init server function remote_build_server:init() super.init(self) + super.listen_set(self, config.get("remote_build.server.listen")) super.handler_set(self, self.handler) end diff --git a/xmake/modules/private/service/server.lua b/xmake/modules/private/service/server.lua index e2ccbbd86..65c61cb2f 100644 --- a/xmake/modules/private/service/server.lua +++ b/xmake/modules/private/service/server.lua @@ -34,14 +34,27 @@ function server:handler_set(handler) self._HANDLER = handler end +-- set the given listen address +function server:listen_set(listen) + local splitinfo = listen:split(':', {plain = true}) + if #splitinfo == 2 then + self._ADDR = splitinfo[1] + self._PORT = splitinfo[2] + else + self._ADDR = "127.0.0.1" + self._PORT = splitinfo[1] + end + assert(self._ADDR and self._PORT, "invalid listen address!") +end + -- get the listen address function server:addr() - return "127.0.0.1" + return self._ADDR end -- get the listen port function server:port() - return 90091 + return self._PORT end -- run main loop |
