diff options
| author | ruki <[email protected]> | 2022-04-05 23:10:11 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-04-05 23:10:11 +0800 |
| commit | ec42771f6a3e99dae11e06859b57699dbe2a6ae7 (patch) | |
| tree | 2cb7281602efccbacefba1438fd5c84deef556b9 | |
| parent | 6686f8110f67829e8d58b987c4637a2a0b885ad3 (diff) | |
get listen address from config
| -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 |
