[mew-dist 29262] Re: cmewが例外で終わる

Masamichi HOSODA <[email protected]>
Newsgroups gmane.mail.mew.general.japanese
Message-ID <[email protected]>

ruby  cmew 


cmew  mewest 


mewest  casket_replica 
cmew  find casket_replica 
mewest  casket_replica 
cmew  casket_replica  lstat 
ensure add_entry.close, get_entry.close, del_entry.close 
db.close  SQLite3::BusyException 




casket_replica  ignore_regex 

 close 







--- cmew.org	2009-09-09 09:57:27.001000000 +0900
+++ cmew	2010-07-17 18:30:42.610787100 +0900
@@ -127,6 +127,8 @@
   deleted = 0
   skipdir = ''
 
+begin
+
   Find.find(target) do |fpath|
     if fpath =~ ignore_regex
       if FileTest.directory?(fpath)
@@ -135,7 +137,7 @@
       end
       # next
     else
-      st = File.lstat(fpath)
+      st = File.lstat(fpath) rescue next
       if st.symlink?
         if FileTest.directory?(fpath)
           print fpath, " (ignored)\n"
@@ -159,7 +161,7 @@
       elsif st.file? and fpath =~ /\/[0-9]+(\.mew)?$/
         next if File.dirname(fpath) == skipdir
         next if last_mod > st.ctime.tv_sec
-        m = Mail.new(fpath)
+        m = Mail.new(fpath) rescue next
         id = get_id(m)
         parid = get_parid(m)
         date = get_date(m)
@@ -183,10 +185,16 @@
       end
     end
   end
+
+ensure
+
   add_entry.close
   get_entry.close
   del_entry.close
   print 'Registered: ',  registred, ', deleted: ', deleted, "\n"
+
+end
+
 end
 
 ################################################################
@@ -209,7 +217,7 @@
 
 db_file = ARGV[0] || File.expand_path('~/Mail/id.db')
 maildir = ARGV[1] || File.expand_path('~/Mail')
-ignore_regex = Regexp.new(ARGV[2] || '^\./casket$|^\./casket/|/\.')
+ignore_regex = Regexp.new(ARGV[2] || '^\./casket$|^\./casket/|^\./casket_replica$|^\./casket_replica/|/\.')
 target = if ARGV[3]; './' + ARGV[3] else '.' end
 have_target = if ARGV[3]; true else false end
 fullupdate = opts[:f] == true




    <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.