diff options
| author | ruki <[email protected]> | 2022-04-05 23:17:51 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-04-05 23:17:51 +0800 |
| commit | 7b11db21f6dac2ddb5fa74c510cfa8e45eb99c49 (patch) | |
| tree | 5ee944bac525ce4d9a8260350f85614213b82479 /xmake/modules | |
| parent | ec42771f6a3e99dae11e06859b57699dbe2a6ae7 (diff) | |
connect server
Diffstat (limited to 'xmake/modules')
| -rw-r--r-- | xmake/modules/private/service/connect_service.lua | 31 | ||||
| -rw-r--r-- | xmake/modules/private/service/remote_build_server.lua | 3 | ||||
| -rw-r--r-- | xmake/modules/private/service/server.lua | 1 | ||||
| -rw-r--r-- | xmake/modules/private/service/start_service.lua | 10 |
4 files changed, 41 insertions, 4 deletions
diff --git a/xmake/modules/private/service/connect_service.lua b/xmake/modules/private/service/connect_service.lua index fc427d445..fef2231f4 100644 --- a/xmake/modules/private/service/connect_service.lua +++ b/xmake/modules/private/service/connect_service.lua @@ -20,9 +20,36 @@ -- imports import("core.base.option") -import("private.service.service") +import("core.base.socket") +import("core.base.scheduler") +import("private.service.config") + +function _get_address() + local addr, port + local address = assert(config.get("remote_build.client.connect"), "config(remote_build.client.connect): not found!") + local splitinfo = address:split(':', {plain = true}) + if #splitinfo == 2 then + addr = splitinfo[1] + port = splitinfo[2] + else + addr = "127.0.0.1" + port = splitinfo[1] + end + assert(addr and port, "invalid connect address!") + return addr, port +end + +function _session(addr, port) + print("connect %s:%d ..", addr, port) + local sock = socket.connect(addr, port) + if sock then + print("%s: connected!", sock) + else + print("connect %s:%d failed", addr, port) + end +end function main() - -- TODO + scheduler.co_start(_session, _get_address()) end diff --git a/xmake/modules/private/service/remote_build_server.lua b/xmake/modules/private/service/remote_build_server.lua index 9e2183413..c6c7d1d2c 100644 --- a/xmake/modules/private/service/remote_build_server.lua +++ b/xmake/modules/private/service/remote_build_server.lua @@ -29,7 +29,8 @@ 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")) + local listen = assert(config.get("remote_build.server.listen"), "config(remote_build.server.listen): not found!") + super.listen_set(self, 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 65c61cb2f..5c313baa8 100644 --- a/xmake/modules/private/service/server.lua +++ b/xmake/modules/private/service/server.lua @@ -21,6 +21,7 @@ -- imports import("core.base.object") import("core.base.socket") +import("core.base.scheduler") -- define module local server = server or object() diff --git a/xmake/modules/private/service/start_service.lua b/xmake/modules/private/service/start_service.lua index 5ab440e9e..fca698bf0 100644 --- a/xmake/modules/private/service/start_service.lua +++ b/xmake/modules/private/service/start_service.lua @@ -25,7 +25,15 @@ import("private.service.service") function main(opt) opt = opt or {} if opt.daemon then - os.execv(os.programfile(), {"lua", "private.service.service"}, {detach = true}) + local argv = {"lua"} + if option.get("verbose") then + table.insert(argv, "-v") + end + if option.get("diagnosis") then + table.insert(argv, "-D") + end + table.insert(argv, "private.service.service") + os.execv(os.programfile(), argv, {detach = true}) else service() end |
