Skip to content

Commit 982a2bf

Browse files
committed
Now prototype with commands defined by broker, not cli
1 parent e649b2a commit 982a2bf

File tree

2 files changed

+58
-1
lines changed

2 files changed

+58
-1
lines changed

deps/rabbit/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ CLI_SCRIPTS := scripts/rmq
156156

157157
ebin/$(PROJECT).app:: $(CLI_SCRIPTS)
158158

159-
$(CLI_SCRIPTS): ebin/rabbit_cli_escript.beam
159+
$(CLI_SCRIPTS): ebin/rabbit_cli.beam
160160
$(gen_verbose) echo '#!/usr/bin/env escript' > "$@"
161161
$(verbose) echo '%%! -start_epmd false' >> "$@"
162162
$(verbose) cat $^ >> "$@"

deps/rabbit/src/rabbit_cli.erl

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
-module(rabbit_cli).
2+
3+
-include_lib("kernel/include/logger.hrl").
4+
5+
-export([main/1]).
6+
7+
main(Args) ->
8+
Nodename = determine_rabbitmq_nodename(Args),
9+
?LOG_ALERT("Nodename = ~p", [Nodename]),
10+
io:format("Nodename = ~p~n", [Nodename]),
11+
erlang:halt().
12+
13+
determine_rabbitmq_nodename(Args) ->
14+
case get_rabbitmq_nodename_from_args(Args) of
15+
{ok, Args1} ->
16+
GuessedNodename = guess_rabbitmq_nodename(),
17+
{ok, Args1, GuessedNodename};
18+
{ok, Args1, Nodename} ->
19+
{ok, Args1, Nodename}
20+
end.
21+
22+
get_rabbitmq_nodename_from_args(Args) ->
23+
Definition = #{arguments =>
24+
[#{name => node,
25+
long => "-node",
26+
short => $n},
27+
#{name => rest,
28+
nargs => list,
29+
action => extend,
30+
required => false,
31+
default => []}]},
32+
case argparse:parse(Args, Definition, #{}) of
33+
{ok, #{node := Nodename, rest := Rest}, _, _} ->
34+
{ok, {Nodename, Rest}};
35+
{ok, #{rest := Rest}, _, _} ->
36+
{ok, Rest}
37+
end.
38+
39+
guess_rabbitmq_nodename() ->
40+
case net_adm:names() of
41+
{ok, NamesAndPorts} ->
42+
Names0 = [Name || {Name, _Port} <- NamesAndPorts],
43+
Names1 = lists:sort(Names0),
44+
Names2 = lists:filter(
45+
fun
46+
("rabbit" ++ _) -> true;
47+
(_) -> false
48+
end, Names1),
49+
case Names2 of
50+
[First | _] ->
51+
First;
52+
[] ->
53+
"rabbit"
54+
end;
55+
{error, address} ->
56+
"rabbit"
57+
end.

0 commit comments

Comments
 (0)