diff options
Diffstat (limited to 'Data/Libraries/Penlight/examples/testclone.lua')
-rw-r--r-- | Data/Libraries/Penlight/examples/testclone.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Data/Libraries/Penlight/examples/testclone.lua b/Data/Libraries/Penlight/examples/testclone.lua new file mode 100644 index 0000000..b0d948f --- /dev/null +++ b/Data/Libraries/Penlight/examples/testclone.lua @@ -0,0 +1,40 @@ +--cloning a directory tree. +local lfs = require 'lfs' +local path = require 'pl.path' +local dir = require 'pl.dir' + +local p1 = [[examples]] +local p2 = [[copy/of/examples]] + +if not path.isfile 'examples/testclone.lua' then + return print 'please run this in the penlight folder (below examples)' +end + +-- make a copy of the examples folder +dir.clonetree(p1,p2,dir.copyfile) + +assert(path.isdir 'copy') + +print '---' +local t = os.time() +print(lfs.touch('examples/testclone.lua',t,t+10)) + +-- this should only update this file +dir.clonetree(p1,p2, +function(f1,f2) + local t1 = path.getmtime(f1) + local t2 = path.getmtime(f2) + --print(f1,t1,f2,t2) + if t1 > t2 then + dir.copyfile(f1,f2) + print(f1,f2,t1,t2) + end + return true +end) + +-- and get rid of the whole copy directory, with subdirs +dir.rmtree 'copy' + +assert(not path.exists 'copy') + + |