FILES_NAME = 'files.txt' # files.txt will content all files name
OLD_FILES_NAME = 'old_files.txt' # backup for current files.txt
def get_files( pathname )
result = []
pathname.children.each { |e|
result << e.to_s
result += get_files(e) if e.directory?
}
result
end
old_files = []
begin
old_files = IO.readlines(FILES_NAME).map { |e| e.chomp }
File.rename(FILES_NAME, OLD_FILES_NAME)
rescue
end
new_files = get_files(Pathname.new(File.expand_path('.'))).sort
open(FILES_NAME, 'w') { |f| new_files.each { |e| f.puts(e) } }
extra = new_files - old_files
removed = old_files - new_files
if !extra.empty?
puts "Extra files:"
extra.each { |f| puts f }
puts
end
if !removed.empty?
puts "Removed files:"
removed.each { |f| puts f }
puts
end
if extra.empty? && removed.empty?
puts "Identical."
end