class Elscripto::Options
Constants
- VALID_COMMANDS
Public Class Methods
parse(command,args)
click to toggle source
A customized OptionsParser
# File lib/elscripto/options.rb, line 13 def self.parse(command,args) # The options specified on the command line will be collected in *options*. # We set default values here. options = OpenStruct.new options.verbose = false options.path = FileUtils.pwd options.command = command options.config_file = './.elscripto' options.commands = options.definitions = [] options.enviroment = :production opts = OptionParser.new do |opts| opts.program_name = 'elscripto' opts.banner = "Usage: #{opts.program_name} init|start [options]".green opts.separator "" opts.separator "Options:".green opts.on('-p','--path PATH',"Set elscripto's working directory") do |path| options.path = path end opts.on('-c','--commands CMD1;CMD2;CMD3...','Pass a list of comma-separated commands') do |cmds| options.commands = cmds.split(';').map(&:strip) end opts.on('-d','--definitions DEF1;DEF2;DEF3...','Pass a list of comma-separated command definitions') do |defs| options.definitions = defs.split(';').map(&:strip) end opts.on('-f','--file CONFIG FILE PATH','Pass a path to a config file') do |conf_file| options.config_file = conf_file end opts.on('-e','--enviroment [production|development]','Define runtime enviroment') do |env| options.enviroment = env.to_sym end end opts.separator "" opts.separator "Common options:".green opts.on_tail("-h", "--help", "Show this message") do puts opts exit end opts.on_tail("-v", "--version", "Show version") do puts "#{opts.program_name} #{Elscripto::VERSION}\n(c) 2013, Achillefs Charmpilas".green exit end opts.parse!(args) raise Elscripto::InvalidCommandError, "Please specify a valid command [#{VALID_COMMANDS.join('|')}]" unless VALID_COMMANDS.include?(options.command) options end