Class: VagrantPlugins::Linode::Commands::Root

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-linode/commands/root.rb

Class Method Summary collapse

Instance Method Summary collapse

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.expand_path('../images', __FILE__)
    Images
  end
  @subcommands.register(:plans) do
    require File.expand_path('../plans', __FILE__)
    Plans
  end
  @subcommands.register(:distributions) do
    require File.expand_path('../distributions', __FILE__)
    Distributions
  end
  @subcommands.register(:kernels) do
    require File.expand_path('../kernels', __FILE__)
    Kernels
  end
  @subcommands.register(:datacenters) do
    require File.expand_path('../datacenters', __FILE__)
    Datacenters
  end
  @subcommands.register(:networks) do
    require File.expand_path('../networks', __FILE__)
    Networks
  end
  @subcommands.register(:servers) do
    require File.expand_path('../servers', __FILE__)
    Servers
  end
  @subcommands.register(:volumes) do
    require File.expand_path('../volumes', __FILE__)
    Volumes
  end

  super(argv, env)
end

Class Method Details

.synopsisObject



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

#executeObject



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

#helpObject



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.banner = '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