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