Merge pull request #308 from rabbitmq/rabbitmqctl-cli-307
Support bare --help
This commit is contained in:
commit
8bf5e81926
|
|
@ -46,6 +46,22 @@ defmodule RabbitMQCtl do
|
||||||
|> handle_shutdown
|
|> handle_shutdown
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def exec_command([] = unparsed_command, _) do
|
||||||
|
{_args, parsed_options, _} = Parser.parse_global(unparsed_command)
|
||||||
|
|
||||||
|
# this invocation is considered to be invalid. curl and grep do the
|
||||||
|
# same thing.
|
||||||
|
{:error, ExitCodes.exit_usage(), HelpCommand.all_usage(parsed_options)};
|
||||||
|
end
|
||||||
|
|
||||||
|
def exec_command(["--help"] = unparsed_command, _) do
|
||||||
|
{_args, parsed_options, _} = Parser.parse_global(unparsed_command)
|
||||||
|
|
||||||
|
# the user asked for --help and we are displaying it to her,
|
||||||
|
# reporting a success
|
||||||
|
{:ok, ExitCodes.exit_ok(), HelpCommand.all_usage(parsed_options)};
|
||||||
|
end
|
||||||
|
|
||||||
def exec_command(unparsed_command, output_fun) do
|
def exec_command(unparsed_command, output_fun) do
|
||||||
{command, command_name, arguments, parsed_options, invalid} = Parser.parse(unparsed_command)
|
{command, command_name, arguments, parsed_options, invalid} = Parser.parse(unparsed_command)
|
||||||
|
|
||||||
|
|
@ -83,7 +99,7 @@ defmodule RabbitMQCtl do
|
||||||
|
|
||||||
case options[:help] do
|
case options[:help] do
|
||||||
true ->
|
true ->
|
||||||
{:error, ExitCodes.exit_ok(), HelpCommand.all_usage(command, options)};
|
{:ok, ExitCodes.exit_ok(), HelpCommand.all_usage(command, options)};
|
||||||
_ ->
|
_ ->
|
||||||
{arguments, options} = command.merge_defaults(arguments, options)
|
{arguments, options} = command.merge_defaults(arguments, options)
|
||||||
|
|
||||||
|
|
@ -183,7 +199,7 @@ defmodule RabbitMQCtl do
|
||||||
exit_program(exit_code)
|
exit_program(exit_code)
|
||||||
end
|
end
|
||||||
|
|
||||||
defp handle_shutdown({:error, exit_code, output}) do
|
defp handle_shutdown({_, exit_code, output}) do
|
||||||
device = output_device(exit_code)
|
device = output_device(exit_code)
|
||||||
|
|
||||||
for line <- List.flatten([output]) do
|
for line <- List.flatten([output]) do
|
||||||
|
|
|
||||||
|
|
@ -62,15 +62,29 @@ defmodule RabbitMQCtlTest do
|
||||||
delete_user "kirk"
|
delete_user "kirk"
|
||||||
end
|
end
|
||||||
|
|
||||||
## ------------------------ Malformed Commands --------------------------------
|
## ------------------------ Help and Malformed Commands --------------------------------
|
||||||
|
|
||||||
test "Empty command shows usage message" do
|
test "when invoked without arguments, displays a generic usage message and exits with a non-zero code" do
|
||||||
command = []
|
command = []
|
||||||
assert capture_io(:stderr, fn ->
|
assert capture_io(:stderr, fn ->
|
||||||
error_check(command, exit_usage())
|
error_check(command, exit_usage())
|
||||||
end) =~ ~r/\nUsage:\n/
|
end) =~ ~r/\nUsage:\n/
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "when invoked with only a --help, shows a generic usage message and exits with a success" do
|
||||||
|
command = ["--help"]
|
||||||
|
assert capture_io(:stdio, fn ->
|
||||||
|
error_check(command, exit_ok())
|
||||||
|
end) =~ ~r/\nUsage:\n/
|
||||||
|
end
|
||||||
|
|
||||||
|
test "when invoked with --help [command], shows a generic usage message and exits with a success" do
|
||||||
|
command = ["--help", "status"]
|
||||||
|
assert capture_io(:stdio, fn ->
|
||||||
|
error_check(command, exit_ok())
|
||||||
|
end) =~ ~r/\nUsage:\n/
|
||||||
|
end
|
||||||
|
|
||||||
test "Empty command with options shows usage, and exit with usage exit code" do
|
test "Empty command with options shows usage, and exit with usage exit code" do
|
||||||
command = ["-n", "sandwich@pastrami"]
|
command = ["-n", "sandwich@pastrami"]
|
||||||
assert capture_io(:stderr, fn ->
|
assert capture_io(:stderr, fn ->
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue