From bd7da4f5a06fd9f417d9963d9fcbb074a6176ba2 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Sun, 24 Jun 2018 19:22:10 -0300 Subject: fs.lua: add a LuaPosix-independent version of make_temp_dir This version can run on Windows using lfs alone. --- src/luarocks/fs/lua.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua index 8640b01a..37e1bffc 100644 --- a/src/luarocks/fs/lua.lua +++ b/src/luarocks/fs/lua.lua @@ -839,6 +839,24 @@ end -- Other functions --------------------------------------------------------------------- +if lfs_ok and not fs_lua.make_temp_dir then + +function fs_lua.make_temp_dir(name_pattern) + assert(type(name_pattern) == "string") + name_pattern = dir.normalize(name_pattern) + + local pattern = (os.getenv("TMPDIR") or os.getenv("TEMP") or "/tmp") .. "/luarocks_" .. name_pattern:gsub("/", "_") .. "-" + + while true do + local name = pattern .. tostring(math.random(10000000)) + if lfs.mkdir(name) then + return name + end + end +end + +end + --- Apply a patch. -- @param patchname string: The filename of the patch. -- @param patchdata string or nil: The actual patch as a string. -- cgit v1.2.3-55-g6feb