Sha256: 7b82614347d03d1c06df4e61a6ff5fcd8d2d1302c7e47859dcc02740fb95a6ca

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require 'vmail/imap_client'

module Vmail
  extend self

  def start
    config = YAML::load(File.read(File.expand_path("~/gmail.yml")))
    config.merge! 'logfile' => "vmail.log"

    puts "starting vmail imap client with config #{config}"

    drb_uri = Vmail::ImapClient.daemon config

    server = DRbObject.new_with_uri drb_uri
    server.window_width = `stty size`.strip.split(' ')[1]
    server.select_mailbox ARGV.shift || 'INBOX'

    query = ARGV.empty? ? [100, 'ALL'] : nil

    buffer_file = "vmail-buffer.txt"
    File.open(buffer_file, "w") do |file|
      file.puts server.search(*query)
    end

    # invoke vim
    # TODO
    #  - mvim; move viewer.vim to new file

    vimscript = "viewer.vim"
    system("DRB_URI='#{drb_uri}' vim -S #{vimscript} #{buffer_file}")

    File.delete(buffer_file)

    puts "closing imap connection"  
    begin
      Timeout::timeout(5) do 
        $gmail.close
      end
    rescue Timeout::Error
      puts "close connection attempt timed out"
    end
    puts "bye"
    exit
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vmail-0.0.1 lib/vmail.rb