Class: Vagrant::Hivemind::Command::Root

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant/hivemind/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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/vagrant/hivemind/commands/root.rb', line 11

def initialize(argv, env)
  super

  @main_args, @sub_command, @sub_args = split_main_and_subcommand(argv)

  @subcommands = Vagrant::Registry.new

  @subcommands.register(:init) do
    require_relative "init"
    Init
  end

  @subcommands.register(:list) do
    require_relative "list"
    List
  end

  @subcommands.register(:desc) do
    require_relative "desc"
    Desc
  end

  @subcommands.register(:spawn) do
    require_relative "spawn"
    Spawn
  end

  @subcommands.register(:kill) do
    require_relative "kill"
    Kill
  end

  @subcommands.register(:morph) do
    require_relative "morph"
    Morph
  end

  @subcommands.register(:up) do
    require_relative "up"
    Up
  end

  @subcommands.register(:halt) do
    require_relative "halt"
    Halt
  end

  @subcommands.register(:generate) do
    require_relative "generate"
    Generate
  end

end

Class Method Details

.synopsisObject



7
8
9
# File 'lib/vagrant/hivemind/commands/root.rb', line 7

def self.synopsis
  "Hivemind operations: init list desc spawn kill morph up halt"
end

Instance Method Details

#executeObject



65
66
67
68
69
70
71
72
73
74
# File 'lib/vagrant/hivemind/commands/root.rb', line 65

def execute
  if @main_args.include?("-h") || @main_args.include?("--help")
    return help
  end

  command_class = @subcommands.get(@sub_command.to_sym) if @sub_command
  return help if !command_class || !@sub_command

  command_class.new(@sub_args, @env).execute
end

#helpObject



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/vagrant/hivemind/commands/root.rb', line 76

def help
  opts = OptionParser.new do |o|
    o.banner = "Usage: vagrant hivemind <command> [<args>]"
    o.separator ""
    o.separator "Available commands:"

    @subcommands.each do |key, data|
      o.separator "#{'%8.6s' % key.to_s}  #{'%.60s' % data.synopsis}"
    end

    o.separator ""
    o.separator "For help on any individual command run `vagrant hivemind <command> -h`"
  end

  @env.ui.info(opts.help, prefix: false)
end