1 From: Peter Lemenkov <lemenkov@gmail.com>
2 Date: Wed, 25 May 2016 22:24:44 +0300
3 Subject: [PATCH] Revert "Distinct exit-codes for CLI utilities"
5 This reverts commit 7984540175d0b8852025165b6b6a0ac05d692c98.
7 diff --git a/include/rabbit_cli.hrl b/include/rabbit_cli.hrl
8 index a0d1ecf..efd328a 100644
9 --- a/include/rabbit_cli.hrl
10 +++ b/include/rabbit_cli.hrl
12 -define(RAM_DEF, {?RAM_OPT, flag}).
13 -define(OFFLINE_DEF, {?OFFLINE_OPT, flag}).
14 -define(ONLINE_DEF, {?ONLINE_OPT, flag}).
16 -%% Subset of standartized exit codes from sysexits.h, see
17 -%% https://github.com/rabbitmq/rabbitmq-server/issues/396 for discussion.
19 --define(EX_USAGE , 64). % Bad command-line arguments.
20 --define(EX_DATAERR , 65). % Wrong data in command-line arguments.
21 --define(EX_NOUSER , 67). % The user specified does not exist.
22 --define(EX_UNAVAILABLE, 69). % Could not connect to the target node.
23 --define(EX_SOFTWARE , 70). % Failed to execute command.
24 --define(EX_TEMPFAIL , 75). % Temporary error (e.g. something has timed out).
25 --define(EX_CONFIG , 78). % Misconfiguration detected
26 diff --git a/src/rabbit_cli.erl b/src/rabbit_cli.erl
27 index 6b35482..dc490ad 100644
28 --- a/src/rabbit_cli.erl
29 +++ b/src/rabbit_cli.erl
30 @@ -58,7 +58,7 @@ ensure_cli_distribution() ->
32 print_error("Failed to initialize erlang distribution: ~p.",
34 - rabbit_misc:quit(?EX_TEMPFAIL)
38 %%----------------------------------------------------------------------------
39 @@ -84,10 +84,10 @@ main(ParseFun, DoFun, UsageMod) ->
40 %% thrown errors into normal return values
41 case catch DoFun(Command, Node, Args, Opts) of
43 - rabbit_misc:quit(?EX_OK);
44 + rabbit_misc:quit(0);
46 rabbit_control_misc:print_cmd_result(Command, Result),
47 - rabbit_misc:quit(?EX_OK);
48 + rabbit_misc:quit(0);
49 {'EXIT', {function_clause, [{?MODULE, action, _} | _]}} -> %% < R15
50 PrintInvalidCommandError(),
52 @@ -97,51 +97,51 @@ main(ParseFun, DoFun, UsageMod) ->
53 {error, {missing_dependencies, Missing, Blame}} ->
54 print_error("dependent plugins ~p not found; used by ~p.",
56 - rabbit_misc:quit(?EX_CONFIG);
57 + rabbit_misc:quit(2);
58 {'EXIT', {badarg, _}} ->
59 print_error("invalid parameter: ~p", [Args]),
60 - usage(UsageMod, ?EX_DATAERR);
62 {error, {Problem, Reason}} when is_atom(Problem), is_binary(Reason) ->
63 %% We handle this common case specially to avoid ~p since
64 %% that has i18n issues
65 print_error("~s: ~s", [Problem, Reason]),
66 - rabbit_misc:quit(?EX_SOFTWARE);
67 + rabbit_misc:quit(2);
69 print_error("~p", [Reason]),
70 - rabbit_misc:quit(?EX_SOFTWARE);
71 + rabbit_misc:quit(2);
72 {error_string, Reason} ->
73 print_error("~s", [Reason]),
74 - rabbit_misc:quit(?EX_SOFTWARE);
75 + rabbit_misc:quit(2);
76 {badrpc, {'EXIT', Reason}} ->
77 print_error("~p", [Reason]),
78 - rabbit_misc:quit(?EX_SOFTWARE);
79 + rabbit_misc:quit(2);
83 print_error("operation ~w on node ~w timed out", [Command, Node]),
84 - rabbit_misc:quit(?EX_TEMPFAIL);
85 + rabbit_misc:quit(2);
87 print_error("unable to connect to node ~w: ~w", [Node, Reason]),
88 print_badrpc_diagnostics([Node]),
90 - stop -> rabbit_misc:quit(?EX_OK);
91 - _ -> rabbit_misc:quit(?EX_UNAVAILABLE)
92 + stop -> rabbit_misc:quit(0);
93 + _ -> rabbit_misc:quit(2)
96 {badrpc_multi, Reason, Nodes} ->
97 print_error("unable to connect to nodes ~p: ~w", [Nodes, Reason]),
98 print_badrpc_diagnostics(Nodes),
99 - rabbit_misc:quit(?EX_UNAVAILABLE);
100 + rabbit_misc:quit(2);
102 print_error("operation ~w used with invalid parameter: ~p",
105 {refused, Username, _, _} ->
106 print_error("failed to authenticate user \"~s\"", [Username]),
107 - rabbit_misc:quit(?EX_NOUSER);
108 + rabbit_misc:quit(2);
110 print_error("~p", [Other]),
111 - rabbit_misc:quit(?EX_SOFTWARE)
112 + rabbit_misc:quit(2)
115 start_distribution_anon(0, LastError) ->
116 @@ -172,7 +172,7 @@ name_type() ->
120 - usage(Mod, ?EX_USAGE).
123 usage(Mod, ExitCode) ->
124 io:format("~s", [Mod:usage()]),