aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2018-07-17 15:56:13 -0300
committerHisham Muhammad <hisham@gobolinux.org>2018-07-18 11:24:07 -0300
commit94b25d8922a2bae1c6d5e36bf6b0cffd86d91f2a (patch)
tree6e7a9ffb87ab0766439ab68c036c6c4f4a7dc5c8
parentf20f4cca65d6433cb354b584ee25339f152e72ec (diff)
downloadluarocks-94b25d8922a2bae1c6d5e36bf6b0cffd86d91f2a.tar.gz
luarocks-94b25d8922a2bae1c6d5e36bf6b0cffd86d91f2a.tar.bz2
luarocks-94b25d8922a2bae1c6d5e36bf6b0cffd86d91f2a.zip
fs: support both table and number in set_time
-rw-r--r--src/luarocks/fs/lua.lua9
-rw-r--r--src/luarocks/fs/unix/tools.lua15
-rw-r--r--src/luarocks/fs/win32/tools.lua9
3 files changed, 32 insertions, 1 deletions
diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua
index 58dcf5c1..f2fa50b6 100644
--- a/src/luarocks/fs/lua.lua
+++ b/src/luarocks/fs/lua.lua
@@ -572,8 +572,17 @@ function fs_lua.is_file(file)
572 return lfs.attributes(file, "mode") == "file" 572 return lfs.attributes(file, "mode") == "file"
573end 573end
574 574
575-- Set access and modification times for a file.
576-- @param filename File to set access and modification times for.
577-- @param time may be a number containing the format returned
578-- by os.time, or a table ready to be processed via os.time; if
579-- nil, current time is assumed.
575function fs_lua.set_time(file, time) 580function fs_lua.set_time(file, time)
581 assert(time == nil or type(time) == "table" or type(time) == "number")
576 file = dir.normalize(file) 582 file = dir.normalize(file)
583 if type(time) == "table" then
584 time = os.time(time)
585 end
577 return lfs.touch(file, time) 586 return lfs.touch(file, time)
578end 587end
579 588
diff --git a/src/luarocks/fs/unix/tools.lua b/src/luarocks/fs/unix/tools.lua
index 6a91775f..de63eb81 100644
--- a/src/luarocks/fs/unix/tools.lua
+++ b/src/luarocks/fs/unix/tools.lua
@@ -248,9 +248,22 @@ function tools.browser(url)
248 return fs.execute(cfg.web_browser, url) 248 return fs.execute(cfg.web_browser, url)
249end 249end
250 250
251-- Set access and modification times for a file.
252-- @param filename File to set access and modification times for.
253-- @param time may be a string or number containing the format returned
254-- by os.time, or a table ready to be processed via os.time; if
255-- nil, current time is assumed.
251function tools.set_time(file, time) 256function tools.set_time(file, time)
257 assert(time == nil or type(time) == "table" or type(time) == "number")
252 file = dir.normalize(file) 258 file = dir.normalize(file)
253 return fs.execute(vars.TOUCH, "-d", "@"..tostring(time), file) 259 local flag = ""
260 if type(time) == "number" then
261 time = os.date("*t", time)
262 end
263 if type(time) == "table" then
264 flag = ("-t %04d%02d%02d%02d%02d%02d"):format(time.year, time.month, time.day, time.hour, time.min, time.sec)
265 end
266 return fs.execute(vars.TOUCH .. " " .. flag, file)
254end 267end
255 268
256--- Create a temporary directory. 269--- Create a temporary directory.
diff --git a/src/luarocks/fs/win32/tools.lua b/src/luarocks/fs/win32/tools.lua
index de3d9031..0a27cbe3 100644
--- a/src/luarocks/fs/win32/tools.lua
+++ b/src/luarocks/fs/win32/tools.lua
@@ -310,4 +310,13 @@ function tools.browser(url)
310 return fs.execute(cfg.web_browser..' "Starting docs..." '..fs.Q(url)) 310 return fs.execute(cfg.web_browser..' "Starting docs..." '..fs.Q(url))
311end 311end
312 312
313-- Set access and modification times for a file.
314-- @param filename File to set access and modification times for.
315-- @param time may be a string or number containing the format returned
316-- by os.time, or a table ready to be processed via os.time; if
317-- nil, current time is assumed.
318function tools.set_time(filename, time)
319 return true -- FIXME
320end
321
313return tools 322return tools