summaryrefslogtreecommitdiff
path: root/xmake/modules/private/service/remote_cache/server_session.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2022-05-21 10:08:05 +0800
committerruki <[email protected]>2022-05-21 10:08:05 +0800
commit525f5145e9b0a1a28757bf8273b74d4caf675f57 (patch)
tree5504a4de932edeb034a664c49dbbd053a9873e85 /xmake/modules/private/service/remote_cache/server_session.lua
parenta391526b3c1ffdcad34c2095980ee046e161016e (diff)
use remote cache
Diffstat (limited to 'xmake/modules/private/service/remote_cache/server_session.lua')
-rw-r--r--xmake/modules/private/service/remote_cache/server_session.lua14
1 files changed, 13 insertions, 1 deletions
diff --git a/xmake/modules/private/service/remote_cache/server_session.lua b/xmake/modules/private/service/remote_cache/server_session.lua
index 53845a189..a73734749 100644
--- a/xmake/modules/private/service/remote_cache/server_session.lua
+++ b/xmake/modules/private/service/remote_cache/server_session.lua
@@ -101,9 +101,21 @@ function server_session:push(respmsg)
local stream = self:stream()
local cachekey = body.filename
local cachefile = path.join(self:cachedir(), cachekey:sub(1, 2), cachekey)
- if not stream:recv_file(cachefile) then
+ local cachefile_tmp = cachefile .. ".tmp"
+ if not stream:recv_file(cachefile_tmp) then
+ os.tryrm(cachefile_tmp)
raise("recv %s failed!", cachefile)
end
+ os.mv(cachefile_tmp, cachefile)
+end
+
+-- get file info
+function server_session:fileinfo(respmsg)
+ local body = respmsg:body()
+ local stream = self:stream()
+ local cachekey = body.filename
+ local cachefile = path.join(self:cachedir(), cachekey:sub(1, 2), cachekey)
+ body.fileinfo = {filesize = os.filesize(cachefile), exists = os.isfile(cachefile)}
end
-- clean files