From 2725e46dcb9d2c56ae070e2d68ccbf3cd02a3d59 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 5 Mar 2024 22:02:03 -0300 Subject: fs(windows): avoid excessive icacls calls --- src/luarocks/fs/lua.lua | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua index 454d8e46..6e8c4670 100644 --- a/src/luarocks/fs/lua.lua +++ b/src/luarocks/fs/lua.lua @@ -472,7 +472,8 @@ function fs_lua.copy(src, dest, perms) while true do local block = src_h:read(8192) if not block then break end - dest_h:write(block) + local ok, err = dest_h:write(block) + if not ok then return nil, err end end src_h:close() dest_h:close() @@ -484,10 +485,14 @@ function fs_lua.copy(src, dest, perms) if fullattrs and posix_ok then return posix.chmod(dest, fullattrs) else - if not perms then - perms = fullattrs:match("x") and "exec" or "read" + if cfg.is_platform("unix") then + if not perms then + perms = fullattrs:match("x") and "exec" or "read" + end + return fs.set_permissions(dest, perms, "all") + else + return true end - return fs.set_permissions(dest, perms, "all") end end -- cgit v1.2.3-55-g6feb