testclone.lua

--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')
generated by LDoc 1.4.6