#mtree
<%
lines = ""
lasth = ""
::Dir.chdir(staging_path) do
::Dir.glob("./**/*") do |fn|
#-- per file/directory
stat = File.stat(fn)
f_mode = (stat.mode & 07777).to_s(8)
if File.directory? fn
head = "/set uid=0 gid=0 mode=#{f_mode}\n"
line = "#{fn} time=#{stat.mtime.to_f} type=dir\n"
else
f_md5 = Digest::MD5.file(fn).hexdigest
f_sha = Digest::SHA256.file(fn).hexdigest
head = "/set type=file uid=0 gid=0 mode=#{f_mode}\n"
line = "#{fn} time=#{stat.mtime.to_f} size=#{stat.size} md5digest=#{f_md5} sha256digest=#{f_sha}\n"
end
#-- collect output
if head != lasth
lines += head
lasth = head
end
lines += line
end
end
%><%=lines%>