diff options
author | Philip Kuryloski <kuryloskip@vmware.com> | 2021-09-09 13:50:22 +0200 |
---|---|---|
committer | Philip Kuryloski <kuryloskip@vmware.com> | 2021-09-09 13:50:22 +0200 |
commit | 8cc9806f07095ea8d0edadd18db5959407eb8993 (patch) | |
tree | 7bab0b89c6563707c4d0b8a7a122f3aa7370caac | |
parent | d01b01663b05aae6d120e35b2c0e39c9b19635f2 (diff) | |
download | rabbitmq-server-git-8cc9806f07095ea8d0edadd18db5959407eb8993.tar.gz |
Synchronize mixed versions approach with v3.8.x
-rw-r--r-- | BUILD.package_generic_unix | 19 | ||||
-rw-r--r-- | rabbitmq_home.bzl | 17 | ||||
-rw-r--r-- | rabbitmq_package_generic_unix.bzl | 15 | ||||
-rw-r--r-- | rabbitmq_run.bzl | 1 | ||||
-rw-r--r-- | scripts/bazel/rabbitmq-run.sh | 14 |
5 files changed, 40 insertions, 26 deletions
diff --git a/BUILD.package_generic_unix b/BUILD.package_generic_unix index e9230dca67..4cc8056e7a 100644 --- a/BUILD.package_generic_unix +++ b/BUILD.package_generic_unix @@ -4,12 +4,18 @@ load("@//:rabbitmqctl.bzl", "rabbitmqctl") rabbitmq_package_generic_unix( name = "broker-home", - sbin = glob(["sbin/*"]), - escript = glob(["escript/*"]), - plugins = [ - "//plugins:standard_plugins", - "//plugins:inet_tcp_proxy_ez", - ], + additional_files = + glob( + [ + "sbin/*", + "escript/*", + ], + exclude = ["sbin/rabbitmqctl"], + ) + [ + "//plugins:standard_plugins", + "//plugins:inet_tcp_proxy_ez", + ], + rabbitmqctl = "sbin/rabbitmqctl", ) rabbitmq_run( @@ -27,7 +33,6 @@ rabbitmq_run_command( rabbitmqctl( name = "rabbitmqctl", home = ":broker-home", - # visibility = ["//visibility:public"], ) rabbitmqctl( diff --git a/rabbitmq_home.bzl b/rabbitmq_home.bzl index 5d34441450..a91e487c3d 100644 --- a/rabbitmq_home.bzl +++ b/rabbitmq_home.bzl @@ -3,9 +3,7 @@ load("@bazel-erlang//:bazel_erlang_lib.bzl", "ErlangLibInfo", "flat_deps", "path RabbitmqHomeInfo = provider( doc = "An assembled RABBITMQ_HOME dir", fields = { - "sbin": "Files making up the sbin dir", - "escript": "Files making up the escript dir", - "plugins": "Files making up the plugins dir", + "rabbitmqctl": "rabbitmqctl script from the sbin directory", }, ) @@ -112,11 +110,16 @@ def _impl(ctx): plugins = _flatten([_plugins_dir_links(ctx, plugin) for plugin in plugins]) + rabbitmqctl = None + for script in scripts: + if script.basename == "rabbitmqctl": + rabbitmqctl = script + if rabbitmqctl == None: + fail("could not find rabbitmqct among", scripts) + return [ RabbitmqHomeInfo( - sbin = scripts, - escript = escripts, - plugins = plugins, + rabbitmqctl = rabbitmqctl, ), DefaultInfo( files = depset(scripts + escripts + plugins), @@ -147,7 +150,7 @@ def _dirname(p): return p.rpartition("/")[0] def rabbitmq_home_short_path(rabbitmq_home): - short_path = rabbitmq_home[RabbitmqHomeInfo].sbin[0].short_path + short_path = rabbitmq_home[RabbitmqHomeInfo].rabbitmqctl.short_path if rabbitmq_home.label.workspace_root != "": short_path = path_join(rabbitmq_home.label.workspace_root, short_path) return _dirname(_dirname(short_path)) diff --git a/rabbitmq_package_generic_unix.bzl b/rabbitmq_package_generic_unix.bzl index 392c18c8ba..b589a06529 100644 --- a/rabbitmq_package_generic_unix.bzl +++ b/rabbitmq_package_generic_unix.bzl @@ -1,26 +1,19 @@ load("@//:rabbitmq_home.bzl", "RabbitmqHomeInfo") def _impl(ctx): - scripts = ctx.files.sbin - escripts = ctx.files.escript - plugins = ctx.files.plugins - return [ RabbitmqHomeInfo( - sbin = scripts, - escript = escripts, - plugins = plugins, + rabbitmqctl = ctx.file.rabbitmqctl, ), DefaultInfo( - files = depset(scripts + escripts + plugins), + files = depset(ctx.files.rabbitmqctl + ctx.files.additional_files), ), ] rabbitmq_package_generic_unix = rule( implementation = _impl, attrs = { - "sbin": attr.label_list(allow_files = True), - "escript": attr.label_list(allow_files = True), - "plugins": attr.label_list(allow_files = True), + "rabbitmqctl": attr.label(allow_single_file = True), + "additional_files": attr.label_list(allow_files = True), }, ) diff --git a/rabbitmq_run.bzl b/rabbitmq_run.bzl index cdac97a043..e690451e13 100644 --- a/rabbitmq_run.bzl +++ b/rabbitmq_run.bzl @@ -6,6 +6,7 @@ load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path") def _impl(ctx): rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home) + # the rabbitmq-run.sh template only allows a single erl_libs currently erl_libs = [path_join(rabbitmq_home_path, "plugins")] ctx.actions.expand_template( diff --git a/scripts/bazel/rabbitmq-run.sh b/scripts/bazel/rabbitmq-run.sh index 70777264e9..f9494bd696 100644 --- a/scripts/bazel/rabbitmq-run.sh +++ b/scripts/bazel/rabbitmq-run.sh @@ -1,6 +1,18 @@ #!/usr/bin/env bash set -euo pipefail +rmq_realpath() { + local path=$1 + + if [ -d "$path" ]; then + cd "$path" && pwd + elif [ -f "$path" ]; then + cd "$(dirname "$path")" && echo $(pwd)/$(basename "$path") + else + echo "$path" + fi +} + if [ -z ${TEST_SRCDIR+x} ]; then BASE_DIR=$PWD else @@ -41,7 +53,7 @@ if [ ! -z ${EXTRA_PLUGINS_DIR+x} ]; then fi TEST_TMPDIR=${TEST_TMPDIR:=${TMPDIR}/rabbitmq-test-instances} -RABBITMQ_SCRIPTS_DIR=${BASE_DIR}/{RABBITMQ_HOME}/sbin +RABBITMQ_SCRIPTS_DIR="$(rmq_realpath ${BASE_DIR}/{RABBITMQ_HOME}/sbin)" RABBITMQ_PLUGINS=${RABBITMQ_SCRIPTS_DIR}/rabbitmq-plugins RABBITMQ_SERVER=${RABBITMQ_SCRIPTS_DIR}/rabbitmq-server RABBITMQCTL=${RABBITMQ_SCRIPTS_DIR}/rabbitmqctl |