class VagrantPlugins::Openstack::Command::Main

Public Class Methods

new(argv, env) click to toggle source
Calls superclass method
# File lib/vagrant-openstack-provider/command/main.rb, line 19
def initialize(argv, env)
  @env = env
  @main_args, @sub_command, @sub_args = split_main_and_subcommand(argv)
  @commands = Vagrant::Registry.new

  COMMANDS.each do |cmd|
    @commands.register(cmd[:name]) do
      require_relative cmd[:file]
      Command.const_get(cmd[:clazz])
    end
  end

  super(argv, env)
end
synopsis() click to toggle source
# File lib/vagrant-openstack-provider/command/main.rb, line 15
def self.synopsis
  I18n.t('vagrant_openstack.command.main_synopsis')
end

Public Instance Methods

execute() click to toggle source
# File lib/vagrant-openstack-provider/command/main.rb, line 34
def execute
  command_class = @commands.get(@sub_command.to_sym) if @sub_command
  return usage unless command_class && @sub_command
  command_class.new(@sub_args, @env).execute(@sub_command)
end
usage() click to toggle source
# File lib/vagrant-openstack-provider/command/main.rb, line 40
def usage
  @env.ui.info I18n.t('vagrant_openstack.command.main_usage')
  @env.ui.info ''
  @env.ui.info I18n.t('vagrant_openstack.command.available_subcommands')
  @commands.each do |key, value|
    @env.ui.info "     #{key.to_s.ljust(20)} #{value.synopsis}"
  end
  @env.ui.info ''
end