diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_control.erl | 15 |
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 |
