class MailRunner::CLI

Public Class Methods

daemonize() click to toggle source
# File lib/mail_runner/cli.rb, line 71
def self.daemonize
  #eq_to Process.daemon
  exit if fork
  Process.setsid
  exit if fork
  Dir.chdir "/" 
  STDIN.reopen "/dev/null"
  STDOUT.reopen "/dev/null", "a" 
  STDERR.reopen "/dev/null", "a" 
end
initialize_logger(options) click to toggle source
# File lib/mail_runner/cli.rb, line 82
def self.initialize_logger(options)
  begin
    MailRunner::Logging.initialize_logger(options[:logfile]) if options[:logfile]
    MailRunner::Logging.add_log_file_section_header if options[:logfile]
    MailRunner::Logging.logger.level = ::Logger::DEBUG if options[:verbose]
  rescue => e #primarily to alert invald log path in case of daemon
    puts e.message
    exit 1
  end
end
initialize_manager_bot(opts) click to toggle source
# File lib/mail_runner/cli.rb, line 60
          def self.initialize_manager_bot(opts)
  begin
                    bot = MailRunner.initialize_manager_bot
                    bot.verify_and_set(opts)
                  rescue => e
                    puts e.message
                    exit 1
                  end
return bot
    end
parse_config(cf_path) click to toggle source
# File lib/mail_runner/cli.rb, line 56
def self.parse_config(cf_path)
  YAML.load_file(cf_path)
end
parse_options(argv) click to toggle source
# File lib/mail_runner/cli.rb, line 18
            def self.parse_options(argv)
  opts = {}
  @parser = OptionParser.new do |o|
    o.on '-m', '--mailbox MAILBOX', "Name of Mailbox to watch" do |arg|
      opts[:mailbox] = arg
    end

    o.on '-w', '--webhook URL', "Complete url of webhook to deliver mail to" do |arg|
      opts[:webhook] = arg
    end

    o.on '-a', '--archive', "Use config file to setup archive option." do |arg|
      opts[:archive] = arg
    end

    o.on '-d', '--daemon', "Daemonize process. Be sure to add logfile path." do |arg|
      opts[:daemon] = arg
    end

    o.on '-L', '--logfile PATH', "Absolute path to log file." do |arg|
      opts[:logfile] = arg
    end

    o.on '-c', '--config PATH', "Path to YAML config file." do |arg|
      opts[:config] = arg
    end

    o.on '-v', '--verbose', "Logger runs in debug mode." do |arg|
      opts[:verbose] = arg
    end
  end
  @parser.parse!(argv)
  if opts[:config]
    opts = parse_config(opts[:config]).merge(opts)
  end
  opts
end
set_globals() click to toggle source
# File lib/mail_runner/cli.rb, line 93
def self.set_globals
  MailRunner.set_globals
end
start(args) click to toggle source
# File lib/mail_runner/cli.rb, line 7
def self.start(args)
  options = parse_options(args)
  initialize_logger(options)
  set_globals
  
  @bot = initialize_manager_bot(options)#run first to make sure it runs bot tests prior to daemonizing a process.
  daemonize if options[:daemon] && options[:daemon] == true
  @bot.run
end