summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancesco Mazzoli <francesco@rabbitmq.com>2012-05-01 14:52:01 +0100
committerFrancesco Mazzoli <francesco@rabbitmq.com>2012-05-01 14:52:01 +0100
commit3d1e803d6c6fb2b65d57e48f30d19dccf7b01bda (patch)
treea089850a95bde2c2feb5d493a186bfbddd0d1660
parent37c56fa9171cd3e1d89efe9d0fce766d62ff94b1 (diff)
downloadrabbitmq-server-git-3d1e803d6c6fb2b65d57e48f30d19dccf7b01bda.tar.gz
Check that options are not used in the wrong place
-rw-r--r--src/rabbit_control.erl15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl
index 9b317cee04..1a53b0cff2 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -39,6 +39,12 @@
{"Permissions", rabbit_auth_backend_internal, list_vhost_permissions,
vhost_perms_info_keys}]).
+-define(OPTS_COMMANDS,
+ [{"-p", [set_permissions, clear_permissions, list_permissions,
+ list_user_permissions, list_queues, list_bindings,
+ list_connections, list_channels, list_consumers, trace_on,
+ trace_off]}]).
+
%%----------------------------------------------------------------------------
-ifdef(use_specs).
@@ -84,6 +90,15 @@ start() ->
[string:join([atom_to_list(Command) | Args], " ")])
end,
+ lists:foreach(fun ({Opt, Commands}) ->
+ case {proplists:is_defined(Opt, Opts),
+ lists:member(Command, Commands)} of
+ {true, false} -> PrintInvalidCommandError(),
+ usage();
+ _ -> ok
+ end
+ end, ?OPTS_COMMANDS),
+
%% The reason we don't use a try/catch here is that rpc:call turns
%% thrown errors into normal return values
case catch action(Command, Node, Args, Opts, Inform) of