diff options
| author | ruki <[email protected]> | 2022-05-21 09:18:25 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-05-21 09:18:25 +0800 |
| commit | 9b07378b1e3bea7d02c3d9d556a09f71ae53d610 (patch) | |
| tree | 9a99c3bd50686cde98332211ae744e201ef3e516 /xmake/modules/private/service/remote_cache/client.lua | |
| parent | 3387f817869fa72eaef44cae85220223cc5514f5 (diff) | |
clean files for remote cache
Diffstat (limited to 'xmake/modules/private/service/remote_cache/client.lua')
| -rw-r--r-- | xmake/modules/private/service/remote_cache/client.lua | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/xmake/modules/private/service/remote_cache/client.lua b/xmake/modules/private/service/remote_cache/client.lua index d58bdd9b5..e3b785762 100644 --- a/xmake/modules/private/service/remote_cache/client.lua +++ b/xmake/modules/private/service/remote_cache/client.lua @@ -163,6 +163,35 @@ function remote_cache_client:disconnect() self:status_save() end +-- clean server files +function remote_cache_client:clean() + assert(self:is_connected(), "%s: has been not connected!", self) + local addr = self:addr() + local port = self:port() + local sock = assert(socket.connect(addr, port), "%s: server unreachable!", self) + local session_id = self:session_id() + local errors + local ok = false + print("%s: clean files in %s:%d ..", self, addr, port) + local stream = socket_stream(sock) + if stream:send_msg(message.new_clean(session_id, {token = self:token()})) and stream:flush() then + local msg = stream:recv_msg() + if msg then + vprint(msg:body()) + if msg:success() then + ok = true + else + errors = msg:errors() + end + end + end + if ok then + print("%s: clean files ok!", self) + else + print("%s: clean files failed in %s:%d, %s", self, addr, port, errors or "unknown") + end +end + -- is connected? function remote_cache_client:is_connected() return self:status().connected |
