summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-04-05 23:10:11 +0800
committerruki <[email protected]>2022-04-05 23:10:11 +0800
commitec42771f6a3e99dae11e06859b57699dbe2a6ae7 (patch)
tree2cb7281602efccbacefba1438fd5c84deef556b9
parent6686f8110f67829e8d58b987c4637a2a0b885ad3 (diff)
get listen address from config
-rw-r--r--xmake/modules/private/service/config.lua16
-rw-r--r--xmake/modules/private/service/remote_build_server.lua2
-rw-r--r--xmake/modules/private/service/server.lua17
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