Method: #parse_ARGV
- Defined in:
- lib/easel.rb
#parse_ARGV ⇒ Object
parse_ARGV
Parses the command line arguments (ARGV) using the optparse gem. Optional command line arguments can be seen by running this program with the -h (or –help) flag.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/easel.rb', line 43 def parse_ARGV opt_parser = OptionParser.new do |opts| opts. = "Useage: launch.rb [flags] configuration.yaml" opts.on("-h", "--help", "Prints this help message.") do puts opts exit end opts.on("-l LOG_LEVEL", "--log LOG_LEVEL", Integer, "Sets the logging level (default=2). 0=Silent, 1=Errors, 2=Warnings, 3=Info.") do |lvl| if [0, 1, 2, 3].include?(lvl) $config[:logging] = lvl else log_fatal "Command argument LOG_LEVEL '#{lvl}' not recognized. Expected 0, 1, 2, or 3." end end opts.on("-p PORT", "--port PORT", Integer, "Sets the port to bind to. Default is #{$config[:port]}.") do |port| if port >= 0 and port <= 65535 $config[:port] = port else log_fatal "Command argument PORT '#{port}' not a valid port. Must be between 0 and 65535 (inclusive)" end end opts.on("-h HOST", "--hostname HOST", "Sets the hostname. Default is '#{$config[:hostname]}'.") do |port| if port >= 0 and port <= 65535 $config[:port] = port else log_fatal "Command argument PORT '#{port}' not a valid port. Must be between 0 and 65535 (inclusive)" end end opts.on("-o [FILE]", "--output [FILE]", "Set a log file.") do |filename| begin $config[:log_file] = File.new(filename, "a") rescue Exception => e log_error "Log file could not be open. Sending log to STDIN. Error message: #{e}" end end end.parse! if ARGV.length != 1 log_fatal "launch.rb takes exactly one file. Try -h for more details." else $config[:yaml_file] = ARGV[0] end end |