Class: VagrantPlugins::Linode::Commands::Root
- Inherits:
-
Object
- Object
- VagrantPlugins::Linode::Commands::Root
- Defined in:
- lib/vagrant-linode/commands/root.rb
Class Method Summary collapse
Instance Method Summary collapse
- #execute ⇒ Object
- #help ⇒ Object
-
#initialize(argv, env) ⇒ Root
constructor
A new instance of Root.
Constructor Details
#initialize(argv, env) ⇒ Root
Returns a new instance of Root.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/vagrant-linode/commands/root.rb', line 11 def initialize(argv, env) @main_args, @sub_command, @sub_args = split_main_and_subcommand(argv) @subcommands = Vagrant::Registry.new @subcommands.register(:images) do require File.('../images', __FILE__) Images end @subcommands.register(:plans) do require File.('../plans', __FILE__) Plans end @subcommands.register(:distributions) do require File.('../distributions', __FILE__) Distributions end @subcommands.register(:kernels) do require File.('../kernels', __FILE__) Kernels end @subcommands.register(:datacenters) do require File.('../datacenters', __FILE__) Datacenters end @subcommands.register(:networks) do require File.('../networks', __FILE__) Networks end @subcommands.register(:servers) do require File.('../servers', __FILE__) Servers end @subcommands.register(:volumes) do require File.('../volumes', __FILE__) Volumes end super(argv, env) end |
Class Method Details
.synopsis ⇒ Object
7 8 9 |
# File 'lib/vagrant-linode/commands/root.rb', line 7 def self.synopsis 'query Linode for available images or plans' end |
Instance Method Details
#execute ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/vagrant-linode/commands/root.rb', line 51 def execute if @main_args.include?('-h') || @main_args.include?('--help') # Print the help for all the linode commands. return help end command_class = @subcommands.get(@sub_command.to_sym) if @sub_command return help if !command_class || !@sub_command @logger.debug("Invoking command class: #{command_class} #{@sub_args.inspect}") # Initialize and execute the command class command_class.new(@sub_args, @env).execute end |
#help ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/vagrant-linode/commands/root.rb', line 65 def help opts = OptionParser.new do |opts| opts. = 'Usage: vagrant linode <subcommand> [<args>]' opts.separator '' opts.separator 'Available subcommands:' # Add the available subcommands as separators in order to print them # out as well. keys = [] @subcommands.each { |key, _value| keys << key.to_s } keys.sort.each do |key| opts.separator " #{key}" end opts.separator '' opts.separator 'For help on any individual subcommand run `vagrant linode <subcommand> -h`' end @env.ui.info(opts.help, prefix: false) end |