Sha256: d67036aaa7b83e19f453d76b47fe4085801beedd4630fc569a1d19db2c556dfe

Contents?: true

Size: 1.31 KB

Versions: 5

Compression:

Stored size: 1.31 KB

Contents

require 'optparse'

module Marvin
  class Options
  
    def self.parse!
      options = {
        :verbose   => Marvin::Settings.verbose,
        :log_level => Marvin::Settings.log_level.to_s,
        :daemon    => false
      }
      
      ARGV.options do |o|
        script_name = File.basename($0)
        o.set_summary_indent('    ')
        o.banner =    "Usage: #{script_name}  [OPTIONS]"
        o.define_head "Ruby IRC Library"
        o.separator   ""
        o.separator   ""
        o.on("-l", "--level=[level]", String, "The log level to use",
             "Default: #{options[:log_level]}") {|options[:log_level]|}
        o.on("-v", "--verbose", "Be verbose (print to stdout)") {|options[:verbose]|}
        o.on("-d", "--daemon",  "Run as a daemon (drop the PID)") {|options[:daemon]|}
        o.on("-k", "--kill", "Kill all of the current type / the running instances") do |kill|
           if kill
            Marvin::Daemon.kill_all(Marvin::Loader.type)
            exit
          end
        end
        
        o.separator   ""
        o.on_tail("-h", "--help", "Show this message.") { puts o; exit }
        o.parse!
      end
      
      Marvin::Settings.daemon    = options[:daemon]
      Marvin::Settings.log_level = options[:log_level].to_sym
      Marvin::Settings.verbose   = options[:verbose]
    end
  
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
Sutto-marvin-0.2.0 lib/marvin/options.rb
Sutto-marvin-0.2.1 lib/marvin/options.rb
Sutto-marvin-0.2.2 lib/marvin/options.rb
Sutto-marvin-0.2.3 lib/marvin/options.rb
Sutto-marvin-0.2.4 lib/marvin/options.rb