bin/sup-add in sup-0.0.7 vs bin/sup-add in sup-0.0.8

- old
+ new

@@ -4,36 +4,37 @@ require 'rubygems' require 'highline/import' require 'trollop' require "sup" -Thread.abort_on_exception = true # make debugging possible - $opts = Trollop::options do version "sup-add (sup #{Redwood::VERSION})" banner <<EOS Adds a source to the Sup source list. Usage: - sup-add [options] <source>+ + sup-add [options] <source uri>+ -where <source>+ is one or more sources. +where <source uri>+ is one or more source URIs. For mbox files on local disk, use the form: + mbox:<path to mbox file>, or mbox://<path to mbox file> -or simply - <path to mbox file> For mbox files on remote machines, use the form: mbox+ssh://<machine name>/<path to mbox file> For IMAP folders, use the form (note no username or password!): imap://<machine name>/ # unsecure, "INBOX" folder imap://<machine name>/<folder> # unsecure, arbitrary imaps://<machine name>/ # secure, "INBOX" folder imaps://<machine name>/<folder> # secure, arbitrary folder +For Maildir folders, use the form: + maildir:<path to Maildir directory>; or + maildir://<path to Maildir directory> + Options are: EOS opt :archive, "Automatically archive all new messages from these sources." opt :unusual, "Do not automatically poll these sources for new messages." opt :force_new, "Create a new account for this source, even if one already exists." @@ -77,30 +78,35 @@ Redwood::start index = Redwood::Index.new index.load ARGV.each do |uri| - uri = "mbox://#{uri}" unless uri =~ %r!://! if !$opts[:force_new] && index.source_for(uri) say "Already know about #{uri}; skipping." next end + + parsed_uri = URI(uri) + source = - case uri - when %r!^mbox\+ssh://! + case parsed_uri.scheme + when "mbox+ssh" say "For SSH connections, if you will use public key authentication, you may leave the username and password blank." say "" username, password = get_login_info uri, index.sources - Redwood::MBox::SSHLoader.new(uri, username, password, nil, !$opts[:unusual], $opts[:archive]) - when %r!^imaps?://! + Redwood::MBox::SSHLoader.new uri, username, password, nil, !$opts[:unusual], $opts[:archive] + when "imap", "imaps" username, password = get_login_info uri, index.sources - Redwood::IMAP.new(uri, username, password, nil, !$opts[:unusual], $opts[:archive]) + Redwood::IMAP.new uri, username, password, nil, !$opts[:unusual], $opts[:archive] + when "maildir" + Redwood::Maildir.new uri, nil, !$opts[:unusual], $opts[:archive] + when "mbox" + Redwood::MBox::Loader.new uri, nil, !$opts[:unusual], $opts[:archive] else - Redwood::MBox::Loader.new(uri, nil, !$opts[:unusual], $opts[:archive]) + Trollop::die "Unknown source type #{parsed_uri.scheme.inspect}" end say "Adding #{source}..." index.add_source source end -say "Saving source list..." index.save Redwood::finish