lib/sup.rb in sup-0.12.1 vs lib/sup.rb in sup-0.13.0

- old
+ new

@@ -1,7 +1,13 @@ require 'rubygems' + +require 'syck' require 'yaml' +if YAML.const_defined? :ENGINE + YAML::ENGINE.yamler = 'syck' +end + require 'zlib' require 'thread' require 'fileutils' require 'gettext' require 'curses' @@ -36,12 +42,10 @@ end end end module Redwood - VERSION = "0.12.1" - BASE_DIR = ENV["SUP_BASE"] || File.join(ENV["HOME"], ".sup") CONFIG_FN = File.join(BASE_DIR, "config.yaml") COLOR_FN = File.join(BASE_DIR, "colors.yaml") SOURCE_FN = File.join(BASE_DIR, "sources.yaml") LABEL_FN = File.join(BASE_DIR, "labels.txt") @@ -218,12 +222,12 @@ Until this is corrected, messages from these sources cannot be viewed, and new messages will not be detected. Luckily, this is easy to correct! #{desynced_sources.map do |s| - "Source: " + s.to_s + - "\n Error: " + s.error.message.wrap(70).join("\n ") + + "Source: " + s.to_s + + "\n Error: " + s.error.message.wrap(70).join("\n ") + "\n Fix: sup-sync --changed #{s.to_s}" end} EOM #' stupid ruby-mode end @@ -254,26 +258,51 @@ RUBY_INVOCATION="ruby -Ilib" ruby -Ilib #{$0} You can also try `gem uninstall sup` and removing all Sup rubygems. EOS +#' duh! abort end end ## set up default configuration file def load_config filename + default_config = { + :editor => ENV["EDITOR"] || "/usr/bin/vim -f -c 'setlocal spell spelllang=en_us' -c 'set filetype=mail'", + :thread_by_subject => false, + :edit_signature => false, + :ask_for_from => false, + :ask_for_to => true, + :ask_for_cc => true, + :ask_for_bcc => false, + :ask_for_subject => true, + :account_selector => true, + :confirm_no_attachments => true, + :confirm_top_posting => true, + :jump_to_open_message => true, + :discard_snippets_from_encrypted_messages => false, + :load_more_threads_when_scrolling => true, + :default_attachment_save_dir => "", + :sent_source => "sup://sent", + :archive_sent => true, + :poll_interval => 300, + :wrap_width => 0, + :slip_rows => 0, + :col_jump => 2, + :stem_language => "english" + } if File.exists? filename config = Redwood::load_yaml_obj filename abort "#{filename} is not a valid configuration file (it's a #{config.class}, not a hash)" unless config.is_a?(Hash) - config + default_config.merge config else require 'etc' require 'socket' name = Etc.getpwnam(ENV["USER"]).gecos.split(/,/).first rescue nil name ||= ENV["USER"] - email = ENV["USER"] + "@" + + email = ENV["USER"] + "@" + begin Socket.gethostbyname(Socket.gethostname).first rescue SocketError Socket.gethostname end @@ -287,28 +316,12 @@ :sendmail => "/usr/sbin/sendmail -oem -ti", :signature => File.join(ENV["HOME"], ".signature"), :gpgkey => "" } }, - :editor => ENV["EDITOR"] || "/usr/bin/vim -f -c 'setlocal spell spelllang=en_us' -c 'set filetype=mail'", - :thread_by_subject => false, - :edit_signature => false, - :ask_for_from => false, - :ask_for_to => true, - :ask_for_cc => true, - :ask_for_bcc => false, - :ask_for_subject => true, - :confirm_no_attachments => true, - :confirm_top_posting => true, - :jump_to_open_message => true, - :discard_snippets_from_encrypted_messages => false, - :default_attachment_save_dir => "", - :sent_source => "sup://sent", - :poll_interval => 300, - :wrap_width => 0, - :slip_rows => 0 } + config.merge! default_config begin Redwood::save_yaml_obj config, filename, false, true rescue StandardError => e $stderr.puts "warning: #{e.message}" end @@ -319,12 +332,14 @@ module_function :save_yaml_obj, :load_yaml_obj, :start, :finish, :report_broken_sources, :check_library_version_against, :load_config, :managers end +require 'sup/version' require "sup/util" require "sup/hook" +require "sup/time" ## everything we need to get logging working require "sup/logger" Redwood::Logger.init.add_sink $stderr include Redwood::LogsStuff @@ -367,9 +382,10 @@ require "sup/undo" require "sup/horizontal-selector" require "sup/modes/line-cursor-mode" require "sup/modes/help-mode" require "sup/modes/edit-message-mode" +require "sup/modes/edit-message-async-mode" require "sup/modes/compose-mode" require "sup/modes/resume-mode" require "sup/modes/forward-mode" require "sup/modes/reply-mode" require "sup/modes/label-list-mode"