class AppStack::CliOptions

parse command line options based rubocop:disable MethodLength

Attributes

conf_file[RW]
force[RW]
print[RW]
reverse[RW]
simulate[RW]
verbose[RW]

Public Class Methods

new(argv = ARGV) click to toggle source
# File lib/app_stack/cli_options.rb, line 11
def initialize(argv = ARGV)
  parse_opt!(argv)
  case argv.size
  when 1 then self.conf_file = argv.shift
  when 0 then self.conf_file = nil
  else fail "too many configuration files (#{argv.join(', ')})."
  end
end

Public Instance Methods

parse_opt!(argv) click to toggle source

parse command line options

# File lib/app_stack/cli_options.rb, line 21
def parse_opt!(argv)
  opt_parser = OptionParser.new do |opts|
    opts.banner = 'Usage: appstack [options] [config_file]'

    opts.separator ''
    opts.separator 'Available options:'

    opts.on('-f', '--force', 'force overwrite') do
      self.force = true
    end

    opts.on('-s', '--simulate', 'simulate only, do not copy') do
      self.simulate = true
    end

    opts.on('-r', '--reverse', 'copy local update to remote') do
      self.reverse = true
    end

    opts.on('-p', '--print', 'print copy relationships') do
      self.print = true
    end

    opts.on('--verbose', 'show debug messages') do
      self.verbose = true
    end

    opts.on_tail('-h', '--help', 'show this message') do
      puts opts
      exit
    end

    opts.on_tail('-v', '--version', 'show version number') do
      puts AppStack::VERSION
      exit
    end
  end

  opt_parser.parse!(argv)
end