class Vanagon::CLI

Constants

DOCUMENTATION

Public Instance Methods

options_translate(docopt_options) click to toggle source

Provide a translation from parsed docopt options to older optparse options

# File lib/vanagon/cli.rb, line 95
def options_translate(docopt_options)
  docopt_options
end
options_validate(options) click to toggle source

Do validation of options

# File lib/vanagon/cli.rb, line 90
def options_validate(options)
  options
end
parse(argv) click to toggle source
# File lib/vanagon/cli.rb, line 45
def parse(argv) # rubocop:disable Metrics/AbcSize
  parsed_options = parse_options(argv)
  sub_command = parsed_options['<command>']
  sub_argv = parsed_options['<args>']

  case sub_command
  when 'build'
    @sub_parser = Vanagon::CLI::Build.new
  when 'build_host_info'
    @sub_parser = Vanagon::CLI::BuildHostInfo.new
  when 'build_requirements'
    @sub_parser = Vanagon::CLI::BuildRequirements.new
  when 'completion'
    @sub_parser = Vanagon::CLI::Completion.new
  when 'inspect'
    @sub_parser = Vanagon::CLI::Inspect.new
  when 'render'
    @sub_parser = Vanagon::CLI::Render.new
  when 'list'
    @sub_parser = Vanagon::CLI::List.new
  when 'sign'
    @sub_parser = Vanagon::CLI::Sign.new
  when 'ship'
    @sub_parser = Vanagon::CLI::Ship.new
  when 'dependencies'
    @sub_parser = Vanagon::CLI::Dependencies.new
  when 'help'
    puts DOCUMENTATION
    exit 0
  else
    VanagonLogger.error "vanagon: Error: unknown command: \"#{sub_command}\"\n\n#{DOCUMENTATION}"
    exit 1
  end

  raw_options = @sub_parser.parse(sub_argv)
  options = @sub_parser.options_translate(raw_options)
  @sub_parser.options_validate(options)
  return options
end
run(options) click to toggle source
# File lib/vanagon/cli.rb, line 85
def run(options)
  @sub_parser.run(options)
end

Private Instance Methods

parse_options(argv) click to toggle source
# File lib/vanagon/cli.rb, line 101
def parse_options(argv)
  Docopt.docopt(DOCUMENTATION, { argv: argv, options_first: true })
rescue Docopt::Exit => e
  VanagonLogger.error e.message
  exit 1
end