Skip to content

Commit 53e5c3e

Browse files
committed
Make it convenient to run the "secondary umbrella" under bazel
i.e. `bazel run @rabbitmq-server-generic-unix-3.8.18//:broker` or `bazel run @rabbitmq-server-generic-unix-3.8.18//:rabbitmqctl` (cherry picked from commit 3e29763)
1 parent f5cc903 commit 53e5c3e

File tree

4 files changed

+38
-16
lines changed

4 files changed

+38
-16
lines changed

BUILD.package_generic_unix

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
load("@//:rabbitmq_package_generic_unix.bzl", "rabbitmq_package_generic_unix")
2-
load("@//:rabbitmq_run.bzl", "rabbitmq_run")
2+
load("@//:rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command")
3+
load("@//:rabbitmqctl.bzl", "rabbitmqctl")
34

45
rabbitmq_package_generic_unix(
56
name = "broker-home",
@@ -16,3 +17,25 @@ rabbitmq_run(
1617
home = ":broker-home",
1718
visibility = ["//visibility:public"],
1819
)
20+
21+
rabbitmq_run_command(
22+
name = "broker",
23+
rabbitmq_run = ":rabbitmq-run",
24+
subcommand = "run-broker",
25+
)
26+
27+
rabbitmqctl(
28+
name = "rabbitmqctl",
29+
home = ":broker-home",
30+
# visibility = ["//visibility:public"],
31+
)
32+
33+
rabbitmqctl(
34+
name = "rabbitmq-diagnostics",
35+
home = ":broker-home",
36+
)
37+
38+
rabbitmqctl(
39+
name = "rabbitmq-plugins",
40+
home = ":broker-home",
41+
)

rabbitmq_home.bzl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,3 +142,10 @@ rabbitmq_home = rule(
142142
"plugins": attr.label_list(),
143143
},
144144
)
145+
146+
def _dirname(p):
147+
return p.rpartition("/")[0]
148+
149+
def rabbitmq_home_short_path(rabbitmq_home):
150+
info = rabbitmq_home[RabbitmqHomeInfo]
151+
return _dirname(_dirname(info.sbin[0].short_path))

rabbitmq_run.bzl

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,18 @@
11
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
22
load("@bazel-erlang//:bazel_erlang_lib.bzl", "path_join")
33
load("@bazel-erlang//:ct.bzl", "sanitize_sname")
4-
load(":rabbitmq_home.bzl", "RabbitmqHomeInfo")
5-
6-
def _dirname(p):
7-
return p.rpartition("/")[0]
8-
9-
def _rabbitmq_home_info_root_short_path(rabbitmq_home):
10-
return _dirname(_dirname(rabbitmq_home.sbin[0].short_path))
4+
load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path")
115

126
def _impl(ctx):
13-
rabbitmq_home = ctx.attr.home[RabbitmqHomeInfo]
14-
15-
root = _rabbitmq_home_info_root_short_path(rabbitmq_home)
7+
rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home)
168

17-
erl_libs = [path_join(root, "plugins")]
9+
erl_libs = [path_join(rabbitmq_home_path, "plugins")]
1810

1911
ctx.actions.expand_template(
2012
template = ctx.file._template,
2113
output = ctx.outputs.executable,
2214
substitutions = {
23-
"{RABBITMQ_HOME}": root,
15+
"{RABBITMQ_HOME}": rabbitmq_home_path,
2416
"{ERL_LIBS}": ":".join(erl_libs),
2517
"{ERLANG_HOME}": ctx.attr._erlang_home[ErlangHomeProvider].path,
2618
"{SNAME}": sanitize_sname("sbb-" + ctx.attr.name),

rabbitmqctl.bzl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
load("@bazel-erlang//:erlang_home.bzl", "ErlangVersionProvider")
2-
load(":rabbitmq_home.bzl", "RabbitmqHomeInfo")
2+
load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path")
33

44
def _impl(ctx):
55
erlang_version = ctx.attr._erlang_version[ErlangVersionProvider].version
66

7-
rabbitmq_home = ctx.attr.home[RabbitmqHomeInfo]
7+
rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home)
88

99
script = """
1010
exec ./{home}/sbin/{cmd} $@
1111
""".format(
12-
home = ctx.attr.home.label.name,
12+
home = rabbitmq_home_path,
1313
cmd = ctx.label.name,
1414
)
1515

0 commit comments

Comments
 (0)