diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2018-06-24 19:22:10 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2018-07-01 15:51:36 -0300 |
commit | bd7da4f5a06fd9f417d9963d9fcbb074a6176ba2 (patch) | |
tree | 8bb566b285bc0f45bbe0173a0d456632cae1d0ec /src | |
parent | e0be0ddde3c457b5ab91f6f040529753d4e5553a (diff) | |
download | luarocks-bd7da4f5a06fd9f417d9963d9fcbb074a6176ba2.tar.gz luarocks-bd7da4f5a06fd9f417d9963d9fcbb074a6176ba2.tar.bz2 luarocks-bd7da4f5a06fd9f417d9963d9fcbb074a6176ba2.zip |
fs.lua: add a LuaPosix-independent version of make_temp_dir
This version can run on Windows using lfs alone.
Diffstat (limited to 'src')
-rw-r--r-- | src/luarocks/fs/lua.lua | 18 |
1 files changed, 18 insertions, 0 deletions
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 | |||
839 | -- Other functions | 839 | -- Other functions |
840 | --------------------------------------------------------------------- | 840 | --------------------------------------------------------------------- |
841 | 841 | ||
842 | if lfs_ok and not fs_lua.make_temp_dir then | ||
843 | |||
844 | function fs_lua.make_temp_dir(name_pattern) | ||
845 | assert(type(name_pattern) == "string") | ||
846 | name_pattern = dir.normalize(name_pattern) | ||
847 | |||
848 | local pattern = (os.getenv("TMPDIR") or os.getenv("TEMP") or "/tmp") .. "/luarocks_" .. name_pattern:gsub("/", "_") .. "-" | ||
849 | |||
850 | while true do | ||
851 | local name = pattern .. tostring(math.random(10000000)) | ||
852 | if lfs.mkdir(name) then | ||
853 | return name | ||
854 | end | ||
855 | end | ||
856 | end | ||
857 | |||
858 | end | ||
859 | |||
842 | --- Apply a patch. | 860 | --- Apply a patch. |
843 | -- @param patchname string: The filename of the patch. | 861 | -- @param patchname string: The filename of the patch. |
844 | -- @param patchdata string or nil: The actual patch as a string. | 862 | -- @param patchdata string or nil: The actual patch as a string. |