bin_SCRIPTS = \
+  files-from-date.rb \
   find-cmd.sh \
   list-dates.rb \
   other-commands \
 
--- /dev/null
+#!/usr/bin/ruby
+
+# Make sure the record separator is zero rather than new-line
+$/ = "\0"
+
+# The only argument is the date for which to list files
+date = ARGV.shift.to_i
+
+ARGF.each do |line|
+  # The seventh and eigth fields are the backup date and the file name.
+  backupdate,name = line.split( ' ', 8 )[6,7]
+
+  # Print the name if the backup date matches
+  print name if date == backupdate.to_i
+end
 
 
 {
   for type in d f l; do
-    find . -type $type -printf "$type %#m %u %g %s %CY%Cm%Cd%CH%CM%CS 0 %p\0"
+    find . -type $type -printf "$type %#m %u %g %s %CY%Cm%Cd%CH%CM%CS %CS %p\0"
   done
 }
 
 #!/usr/bin/ruby
 
+# Make sure the record separator is zero rather than new-line
+$/ = "\0"
+
+# Create a set of backup dates
 require 'set'
+dates = SortedSet.new
 
-dates = Set.new
+# Split each input record into 8 fields on spaces and grab the 7th as integer
+date_array = ARGF.map { |rec| rec.split( ' ', 8 )[6].to_i }
 
-ARGF.each( "\0" ) do |line|
-  fields = line.split ' ', 8
-  dates.add fields[6]
-end
+# Merge the dates into the set
+dates.merge date_array
 
-dates.each do |date|
-  puts date
-end
+# Output the sorted set
+puts dates.to_a