diff options
author | Philip Kuryloski <kuryloskip@vmware.com> | 2021-09-08 12:01:38 +0200 |
---|---|---|
committer | Philip Kuryloski <kuryloskip@vmware.com> | 2021-09-08 12:01:38 +0200 |
commit | 3e2976384aee634e8d5b1266ea266c47b2c5bf42 (patch) | |
tree | a54e4109cbd7294cf3da17c2c701a27f913d0496 | |
parent | 2b6296c4e211f0912508debf06288877448bf026 (diff) | |
download | rabbitmq-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_unix | 25 | ||||
-rw-r--r-- | rabbitmq_home.bzl | 7 | ||||
-rw-r--r-- | rabbitmq_run.bzl | 16 | ||||
-rw-r--r-- | rabbitmqctl.bzl | 6 |
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, ) |