sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit da90f10fddd262ce86bf8318a76d4c8ffdc8f54b
parent a96e3781cdc815da5fad94cf2fcc1abe099cc0e2
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date:   Thu,  4 Jan 2007 06:17:11 +0000

fixed percent_done thing


git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@172 5c8cc53c-5e98-4d25-b20a-d8db53a31250

Diffstat:
M bin/sup-import | 5 ++++-
M lib/sup/imap.rb | 2 ++
M lib/sup/mbox/loader.rb | 2 +-
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/bin/sup-import b/bin/sup-import
@@ -49,6 +49,7 @@ the following options:
   --force-read:    any messages found will not be marked as new.
 
 The following options can also be specified:
+  --verbose:       print message ids as they're processed
   --the-usual:     import new messages from all usual sources
   --rebuild:       rebuild the index for the specified sources rather than
                    just adding new messages. Useful if the sources
@@ -62,6 +63,7 @@ The following options can also be specified:
 EOS
   exit
 end
+#' stupid ruby-mode
 
 ## for sources that require login information, prompt the user for
 ## that. also provide a list of previously-defined login info to
@@ -105,6 +107,7 @@ the_usual = ARGV.delete "--the-usual"
 rebuild = ARGV.delete "--rebuild"
 force_rebuild = ARGV.delete "--force-rebuild"
 optimize = ARGV.delete "--optimize"
+verbose = ARGV.delete "--verbose"
 start_at = # ok really need to use optparse or something now
   if(i = ARGV.index("--start-at"))
     raise "start-at requires a numeric argument: #{ARGV[i + 1].inspect}" unless ARGV.length > (i + 1) && ARGV[i + 1] =~ /\d/
@@ -179,7 +182,7 @@ begin
         end
 
         m.remove_label :unread if m.source_marked_read? unless force_read
-        puts "# message at #{offset}, labels: #{labels * ', '}" unless rebuild
+        puts "# message at #{offset}, labels: #{labels * ', '}" if verbose unless rebuild
         if (rebuild || force_rebuild) && 
             (docid, entry = index.load_entry_for_id(m.id)) && entry
           if force_rebuild || entry[:source_info].to_i != offset
diff --git a/lib/sup/imap.rb b/lib/sup/imap.rb
@@ -204,6 +204,8 @@ class IMAP < Source
     @mutex.synchronize { connect or raise SourceError, broken_msg }
     @ids.last
   end
+
+  def pct_done; 100.0 * (@ids.index(cur_offset) || 0).to_f / (@ids.length - 1).to_f; end
 end
 
 Redwood::register_yaml(IMAP, %w(uri username password cur_offset usual archived id))
diff --git a/lib/sup/mbox/loader.rb b/lib/sup/mbox/loader.rb
@@ -29,7 +29,7 @@ class Loader < Source
 
   def start_offset; 0; end
   def end_offset; File.size @f; end
-  def total; end_offset; end
+  def pct_done; 100.0 * cur_offset.to_f / end_offset.to_f; end
 
   def load_header offset
     header = nil