diff --git a/lib/vagrant/cli.rb b/lib/vagrant/cli.rb index 1f2f04514..6c1b97a1e 100644 --- a/lib/vagrant/cli.rb +++ b/lib/vagrant/cli.rb @@ -60,6 +60,10 @@ module Vagrant commands = {} longest = 0 Vagrant.plugin("2").manager.commands.each do |key, data| + # Skip non-primary commands. These only show up in extended + # help output. + next if !data[1][:primary] + key = key.to_s klass = data[0].call commands[key] = klass.synopsis diff --git a/test/unit/vagrant/cli_test.rb b/test/unit/vagrant/cli_test.rb index 6b2d12c35..047f8ae54 100644 --- a/test/unit/vagrant/cli_test.rb +++ b/test/unit/vagrant/cli_test.rb @@ -42,15 +42,15 @@ describe Vagrant::CLI do describe "#help" do subject { described_class.new([], env) } - it "includes all available subcommands" do - commands[:foo] = [command_lambda("foo", 0), {}] - commands[:bar] = [command_lambda("bar", 0), {}] - commands[:baz] = [command_lambda("baz", 0), {}] + it "includes all primary subcommands" do + commands[:foo] = [command_lambda("foo", 0), { primary: true }] + commands[:bar] = [command_lambda("bar", 0), { primary: true }] + commands[:baz] = [command_lambda("baz", 0), { primary: false }] env.ui.should_receive(:info).with do |message, opts| expect(message).to include("foo") expect(message).to include("bar") - expect(message).to include("baz") + expect(message.include?("baz")).to be_false end subject.help