commit 04d8cfe1079a456cbe95faf6170d2bb9ee4dd51e
parent 45c3433c036446455e63142d2d2db4e37557a260
Author: Rich Lane <rlane@club.cc.cmu.edu>
Date: Fri, 16 Jul 2010 13:59:44 -0400
protect sup-dump against bad index entries
Diffstat:
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/bin/sup-dump b/bin/sup-dump
@@ -3,6 +3,7 @@
require 'rubygems'
require 'xapian'
require 'trollop'
+require 'set'
BASE_DIR = ENV["SUP_BASE"] || File.join(ENV["HOME"], ".sup")
@@ -28,8 +29,12 @@ version = '0' if version.empty?
case version
when '0'
xapian.postlist('Kmail').each do |x|
- entry = Marshal.load(xapian.document(x.docid).data)
- puts "#{entry[:message_id]} (#{entry[:labels].sort_by { |l| l.to_s } * ' '})"
+ begin
+ entry = Marshal.load(xapian.document(x.docid).data)
+ puts "#{entry[:message_id]} (#{entry[:labels].sort_by { |l| l.to_s } * ' '})"
+ rescue
+ $stderr.puts "failed to dump document #{x.docid}"
+ end
end
else
abort "this sup-dump version doesn't understand your index"