summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-09-14 23:14:27 +0800
committerruki <[email protected]>2023-09-14 23:14:27 +0800
commitf64eee5a26043980a341dc97851e4f5285a0939b (patch)
tree64b724e3eee3450829a15717a63ae806bc6e6d24
parent92ab5604f06172d13ef8cde8fc880e202ceba61c (diff)
clean all for remote service
-rw-r--r--xmake/actions/service/xmake.lua3
-rw-r--r--xmake/modules/private/service/message.lua3
-rw-r--r--xmake/modules/private/service/remote_build/client.lua2
-rw-r--r--xmake/modules/private/service/remote_build/server.lua2
-rw-r--r--xmake/modules/private/service/remote_build/server_session.lua6
5 files changed, 12 insertions, 4 deletions
diff --git a/xmake/actions/service/xmake.lua b/xmake/actions/service/xmake.lua
index 57d352a7c..2473c186b 100644
--- a/xmake/actions/service/xmake.lua
+++ b/xmake/actions/service/xmake.lua
@@ -53,6 +53,9 @@ task("service")
" - xmake service --pull build outputdir",
" - xmake service --pull 'build/**' outputdir" },
{nil, "clean", "k", nil, "Clean current project files in the remote daemon service." },
+ {nil, "all", "k", nil, "Clean all project files in the remote daemon service.",
+ "e.g.",
+ " - xmake service --clean --all" },
{nil, "add-user", "kv", nil, "Add user in the server.",
"e.g.",
" - xmake service --add-user=root" },
diff --git a/xmake/modules/private/service/message.lua b/xmake/modules/private/service/message.lua
index 820dce2cd..8edcd2789 100644
--- a/xmake/modules/private/service/message.lua
+++ b/xmake/modules/private/service/message.lua
@@ -218,7 +218,8 @@ function new_clean(session_id, opt)
return _new({
code = message.CODE_CLEAN,
session_id = session_id,
- token = opt.token
+ token = opt.token,
+ all = opt.all
})
end
diff --git a/xmake/modules/private/service/remote_build/client.lua b/xmake/modules/private/service/remote_build/client.lua
index 05dc142c4..aaacb2bd1 100644
--- a/xmake/modules/private/service/remote_build/client.lua
+++ b/xmake/modules/private/service/remote_build/client.lua
@@ -302,7 +302,7 @@ function remote_build_client:clean()
local ok = false
cprint("${dim}%s: clean files in %s:%d ..", self, addr, port)
local stream = socket_stream(sock, {send_timeout = self:send_timeout(), recv_timeout = self:recv_timeout()})
- if stream:send_msg(message.new_clean(session_id, {token = self:token()})) and stream:flush() then
+ if stream:send_msg(message.new_clean(session_id, {token = self:token(), all = option.get("all")})) and stream:flush() then
local msg = stream:recv_msg({timeout = -1})
if msg then
vprint(msg:body())
diff --git a/xmake/modules/private/service/remote_build/server.lua b/xmake/modules/private/service/remote_build/server.lua
index c890e1158..6522fffb5 100644
--- a/xmake/modules/private/service/remote_build/server.lua
+++ b/xmake/modules/private/service/remote_build/server.lua
@@ -96,7 +96,7 @@ function remote_build_server:_on_handle(stream, msg)
elseif msg:is_pull() then
session:pull(respmsg)
elseif msg:is_clean() then
- session:clean()
+ session:clean(respmsg)
elseif msg:is_runcmd() then
session:runcmd(respmsg)
end
diff --git a/xmake/modules/private/service/remote_build/server_session.lua b/xmake/modules/private/service/remote_build/server_session.lua
index 654a700f9..1f3f9dc36 100644
--- a/xmake/modules/private/service/remote_build/server_session.lua
+++ b/xmake/modules/private/service/remote_build/server_session.lua
@@ -223,10 +223,14 @@ function server_session:pull(respmsg)
end
-- clean files
-function server_session:clean()
+function server_session:clean(respmsg)
+ local body = respmsg:body()
vprint("%s: clean files in %s ..", self, self:workdir())
os.tryrm(self:sourcedir())
os.tryrm(self:xmake_sourcedir())
+ if body.all then
+ os.tryrm(self:server():workdir())
+ end
vprint("%s: clean files ok", self)
end