summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Kuryloski <kuryloskip@vmware.com>2021-09-08 12:01:38 +0200
committerPhilip Kuryloski <kuryloskip@vmware.com>2021-09-08 12:01:38 +0200
commit3e2976384aee634e8d5b1266ea266c47b2c5bf42 (patch)
treea54e4109cbd7294cf3da17c2c701a27f913d0496
parent2b6296c4e211f0912508debf06288877448bf026 (diff)
downloadrabbitmq-server-git-3e2976384aee634e8d5b1266ea266c47b2c5bf42.tar.gz
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`
-rw-r--r--BUILD.package_generic_unix25
-rw-r--r--rabbitmq_home.bzl7
-rw-r--r--rabbitmq_run.bzl16
-rw-r--r--rabbitmqctl.bzl6
4 files changed, 38 insertions, 16 deletions
diff --git a/BUILD.package_generic_unix b/BUILD.package_generic_unix
index 30286bb112..e9230dca67 100644
--- a/BUILD.package_generic_unix
+++ b/BUILD.package_generic_unix
@@ -1,5 +1,6 @@
load("@//:rabbitmq_package_generic_unix.bzl", "rabbitmq_package_generic_unix")
-load("@//:rabbitmq_run.bzl", "rabbitmq_run")
+load("@//:rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command")
+load("@//:rabbitmqctl.bzl", "rabbitmqctl")
rabbitmq_package_generic_unix(
name = "broker-home",
@@ -16,3 +17,25 @@ rabbitmq_run(
home = ":broker-home",
visibility = ["//visibility:public"],
)
+
+rabbitmq_run_command(
+ name = "broker",
+ rabbitmq_run = ":rabbitmq-run",
+ subcommand = "run-broker",
+)
+
+rabbitmqctl(
+ name = "rabbitmqctl",
+ home = ":broker-home",
+ # visibility = ["//visibility:public"],
+)
+
+rabbitmqctl(
+ name = "rabbitmq-diagnostics",
+ home = ":broker-home",
+)
+
+rabbitmqctl(
+ name = "rabbitmq-plugins",
+ home = ":broker-home",
+)
diff --git a/rabbitmq_home.bzl b/rabbitmq_home.bzl
index e23ae40f20..3471da76e1 100644
--- a/rabbitmq_home.bzl
+++ b/rabbitmq_home.bzl
@@ -142,3 +142,10 @@ rabbitmq_home = rule(
"plugins": attr.label_list(),
},
)
+
+def _dirname(p):
+ return p.rpartition("/")[0]
+
+def rabbitmq_home_short_path(rabbitmq_home):
+ info = rabbitmq_home[RabbitmqHomeInfo]
+ return _dirname(_dirname(info.sbin[0].short_path))
diff --git a/rabbitmq_run.bzl b/rabbitmq_run.bzl
index f01fef395c..cdac97a043 100644
--- a/rabbitmq_run.bzl
+++ b/rabbitmq_run.bzl
@@ -1,26 +1,18 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load("@bazel-erlang//:bazel_erlang_lib.bzl", "path_join")
load("@bazel-erlang//:ct.bzl", "sanitize_sname")
-load(":rabbitmq_home.bzl", "RabbitmqHomeInfo")
-
-def _dirname(p):
- return p.rpartition("/")[0]
-
-def _rabbitmq_home_info_root_short_path(rabbitmq_home):
- return _dirname(_dirname(rabbitmq_home.sbin[0].short_path))
+load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path")
def _impl(ctx):
- rabbitmq_home = ctx.attr.home[RabbitmqHomeInfo]
-
- root = _rabbitmq_home_info_root_short_path(rabbitmq_home)
+ rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home)
- erl_libs = [path_join(root, "plugins")]
+ erl_libs = [path_join(rabbitmq_home_path, "plugins")]
ctx.actions.expand_template(
template = ctx.file._template,
output = ctx.outputs.executable,
substitutions = {
- "{RABBITMQ_HOME}": root,
+ "{RABBITMQ_HOME}": rabbitmq_home_path,
"{ERL_LIBS}": ":".join(erl_libs),
"{ERLANG_HOME}": ctx.attr._erlang_home[ErlangHomeProvider].path,
"{SNAME}": sanitize_sname("sbb-" + ctx.attr.name),
diff --git a/rabbitmqctl.bzl b/rabbitmqctl.bzl
index be8c90462a..19287521c0 100644
--- a/rabbitmqctl.bzl
+++ b/rabbitmqctl.bzl
@@ -1,15 +1,15 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangVersionProvider")
-load(":rabbitmq_home.bzl", "RabbitmqHomeInfo")
+load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path")
def _impl(ctx):
erlang_version = ctx.attr._erlang_version[ErlangVersionProvider].version
- rabbitmq_home = ctx.attr.home[RabbitmqHomeInfo]
+ rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home)
script = """
exec ./{home}/sbin/{cmd} $@
""".format(
- home = ctx.attr.home.label.name,
+ home = rabbitmq_home_path,
cmd = ctx.label.name,
)