implement the dirstat extension in exportfs, greatly improving perf for OpenOS clients

This commit is contained in:
Izaya 2023-10-08 11:41:44 +10:00
parent 638322c157
commit 35f3c6f89e

View File

@ -16,6 +16,14 @@ end
function netutil.exportfs(path) -- string -- boolean -- Export the directory *path* over RPC. function netutil.exportfs(path) -- string -- boolean -- Export the directory *path* over RPC.
local path = "/"..table.concat(fs.segments(path),"/") local path = "/"..table.concat(fs.segments(path),"/")
local px = require("unionfs").create(path) local px = require("unionfs").create(path)
function px.dirstat(p)
local rt = {}
for k,v in ipairs(px.list(p)) do
local fp = p.."/"..v
rt[v] = {px.isDirectory(fp), px.size(fp), px.lastModified(fp)}
end
return rt
end
for k,v in pairs(px) do for k,v in pairs(px) do
rpc.register("fs_"..path.."_"..k,v) rpc.register("fs_"..path.."_"..k,v)
print("fs_"..path.."_"..k) print("fs_"..path.."_"..k)