X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=bin%2Fsup-config;h=b37e0b2edce0417e8ac43ad1959be8c97460cf13;hb=46f8e5116f38c8248fdc8553db18f8d2132a1f46;hp=bd55fc1825fad84b6cf6cc8c0185d52effbc5adf;hpb=38b3d2167248fd42b7057edf3036215937fe2ed4;p=sup diff --git a/bin/sup-config b/bin/sup-config index bd55fc1..b37e0b2 100755 --- a/bin/sup-config +++ b/bin/sup-config @@ -17,15 +17,14 @@ Usage: Options: EOS -end #' stupid ruby-mode +end def axe q, default=nil - ans = - if default && !default.empty? - ask "#{q} (enter for \"#{default}\"): " - else - ask "#{q}: " - end + ans = if default && !default.empty? + ask "#{q} (enter for \"#{default}\"): " + else + ask "#{q}: " + end ans.empty? ? default : ans end @@ -54,64 +53,62 @@ def add_source while true do say "Ok, now for the details." - default_labels, components = - case type - when :mbox - $last_fn ||= ENV["MAIL"] - fn = axe "What's the full path to the mbox file?", $last_fn #"srm - return if fn.nil? || fn.empty? - - $last_fn = fn - [Redwood::MBox::Loader.suggest_labels_for(fn), - { :scheme => "mbox", :path => fn }] - when :maildir - $last_fn ||= ENV["MAIL"] - fn = axe "What's the full path to the maildir directory?", $last_fn #"srm - return if fn.nil? || fn.empty? - - $last_fn = fn - [Redwood::Maildir.suggest_labels_for(fn), - { :scheme => "maildir", :path => fn }] - when :mboxssh - $last_server ||= "localhost" - srv = axe "What machine is the mbox file located on?", $last_server - return if srv.nil? || srv.empty? - $last_server = srv - - fn = axe "What's the path to the mbox file?", $last_fn #" stupid ruby-mode - return if fn.nil? || fn.empty? - $last_fn = fn - fn = "/#{fn}" # lame - [Redwood::MBox::SSHLoader.suggest_labels_for(fn), - { :scheme => "mbox+ssh", :host => srv, :path => fn }] - when :imap, :imaps - $last_server ||= "localhost" - srv = axe "What is the IMAP server (host, or host:port notation)?", $last_server - return if srv.nil? || srv.empty? - $last_server = srv - - $last_folder ||= "INBOX" - fn = axe "What's the folder path?", $last_folder #"srm - return if fn.nil? || fn.empty? - $last_folder = fn - - fn = "/#{fn}" # lame - if srv =~ /^(\S+):(\d+)$/ - host, port = $1, $2.to_i - else - host, port = srv, nil - end - [Redwood::IMAP.suggest_labels_for(fn), - { :scheme => type.to_s, :host => host, :port => port, :path => fn }] - end - - uri = - begin - URI::Generic.build components - rescue URI::Error => e - say "Whoopsie! I couldn't build a URI from that: #{e.message}" - if axe_yes("Try again?") then next else return end + default_labels, components = case type + when :mbox + $last_fn ||= ENV["MAIL"] + fn = axe "What's the full path to the mbox file?", $last_fn + return if fn.nil? || fn.empty? + + $last_fn = fn + [Redwood::MBox::Loader.suggest_labels_for(fn), + { :scheme => "mbox", :path => fn }] + when :maildir + $last_fn ||= ENV["MAIL"] + fn = axe "What's the full path to the maildir directory?", $last_fn + return if fn.nil? || fn.empty? + + $last_fn = fn + [Redwood::Maildir.suggest_labels_for(fn), + { :scheme => "maildir", :path => fn }] + when :mboxssh + $last_server ||= "localhost" + srv = axe "What machine is the mbox file located on?", $last_server + return if srv.nil? || srv.empty? + $last_server = srv + + fn = axe "What's the path to the mbox file?", $last_fn + return if fn.nil? || fn.empty? + $last_fn = fn + fn = "/#{fn}" # lame + [Redwood::MBox::SSHLoader.suggest_labels_for(fn), + { :scheme => "mbox+ssh", :host => srv, :path => fn }] + when :imap, :imaps + $last_server ||= "localhost" + srv = axe "What is the IMAP server (host, or host:port notation)?", $last_server + return if srv.nil? || srv.empty? + $last_server = srv + + $last_folder ||= "INBOX" + fn = axe "What's the folder path?", $last_folder + return if fn.nil? || fn.empty? + $last_folder = fn + + fn = "/#{fn}" + if srv =~ /^(\S+):(\d+)$/ + host, port = $1, $2.to_i + else + host, port = srv, nil end + [Redwood::IMAP.suggest_labels_for(fn), + { :scheme => type.to_s, :host => host, :port => port, :path => fn }] + end + + uri = begin + URI::Generic.build components + rescue URI::Error => e + say "Whoopsie! I couldn't build a URI from that: #{e.message}" + if axe_yes("Try again?") then next else return end + end say "I'm going to add this source: #{uri}" unless axe("Does that look right?", "y") =~ /^y|yes$/i @@ -123,13 +120,12 @@ def add_source labels_str = axe("Enter any labels to be automatically added to all messages from this source, separated by spaces (or 'none')", default_labels.join(",")) - labels = - if labels_str =~ /^\s*none\s*$/i - nil - else - labels_str.split(/\s+/) - end - + labels = if labels_str =~ /^\s*none\s*$/i + nil + else + labels_str.split(/\s+/) + end + cmd = build_cmd "sup-add" cmd += " --unusual" unless usual cmd += " --archive" if archive @@ -164,14 +160,13 @@ nary a click of the mouse! Just answer these simple questions and you'll be on your way. EOS -#' stupid ruby-mode account = $config[:accounts][:default] name = axe "What's your name?", account[:name] -email = axe "What's your (primary) email address?", account[:email] #'srm +email = axe "What's your (primary) email address?", account[:email] -say "Ok, your header will look like this:" +say "Ok, your from header will look like this:" say " From: #{name} <#{email}>" say "\nDo you have any alternate email addresses that also receive email?" @@ -187,7 +182,6 @@ $config[:accounts][:default][:alternates] = alts $config[:accounts][:default][:signature] = sigfn $config[:editor] = editor - done = false until done say "\nNow, we'll tell Sup where to find all your email." @@ -222,14 +216,12 @@ else choose do |menu| menu.prompt = "Store my sent mail in? " + menu.choice('Default (an mbox in ~/.sup, aka sup://sent)') { $config[:sent_source] = 'sup://sent'} unless have_sup_sent + valid_sents = Redwood::SourceManager.sources.each do |s| have_sup_sent = true if s.to_s.eql?('sup://sent') - menu.choice(s.to_s) { $config[:sent_source] = s.to_s } if s.respond_to? :store_message end - - menu.choice('Default (sup://sent)') { $config[:sent_source] = 'sup://sent'} unless have_sup_sent - end end @@ -239,12 +231,12 @@ say "Ok, I've saved you up a nice lil' #{Redwood::CONFIG_FN}." say <