]> git.cworth.org Git - sup/commitdiff
remove load_entry_for_id call in sup-recover-sources
authorRich Lane <rlane@club.cc.cmu.edu>
Sat, 20 Jun 2009 20:50:00 +0000 (13:50 -0700)
committerWilliam Morgan <wmorgan-sup@masanjin.net>
Wed, 24 Jun 2009 13:44:48 +0000 (09:44 -0400)
bin/sup-recover-sources
lib/sup/index.rb

index d3b1424de0778bb6350bc4fd53dbbd3bff4602f9..6e3810cdc145246a674cf13c0685c7af484b475f 100755 (executable)
@@ -69,15 +69,14 @@ ARGV.each do |fn|
       Redwood::MBox::Loader.new(fn, nil, !$opts[:unusual], $opts[:archive])
     end
 
-  source_ids = {}
+  source_ids = Hash.new 0
   count = 0
   source.each do |offset, labels|
     m = Redwood::Message.new :source => source, :source_info => offset
-    docid, entry = index.load_entry_for_id m.id
-    next unless entry
-    #puts "# #{source} #{offset} #{entry[:source_id]}"
-
-    source_ids[entry[:source_id]] = (source_ids[entry[:source_id]] || 0) + 1
+    m.load_from_source!
+    source_id = index.source_for_id m.id
+    next unless source_id
+    source_ids[source_id] += 1
     count += 1
     break if count == $opts[:scan_num]
   end
@@ -86,7 +85,6 @@ ARGV.each do |fn|
     id = source_ids.keys.first.to_i
     puts "assigned #{source} to #{source_ids.keys.first}"
     source.id = id
-    source.seek_to! source.total
     index.add_source source
   else
     puts ">> unable to determine #{source}: #{source_ids.inspect}"
index a621ba168b236f0ba85da2313f403b434b0514be..09b41cf81b4937ff80e0c13bc0abb183cd63b7c5 100644 (file)
@@ -494,6 +494,12 @@ EOS
     @index_mutex.synchronize { @index.optimize }
   end
 
+  def source_for_id id
+    entry = @index[id]
+    return unless entry
+    entry[:source_id].to_i
+  end
+
   class ParseError < StandardError; end
 
   ## parse a query string from the user. returns a query object