summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Kuryloski <kuryloskip@vmware.com>2021-11-29 12:58:02 +0100
committerPhilip Kuryloski <kuryloskip@vmware.com>2021-11-29 12:58:02 +0100
commit67ad54151557f9e5f08f249a2f8f7eff6a8554ea (patch)
tree6e8f6e95d581197ae7e5369f4c116fc5fa9689b4
parent83126f12851c499eb10c955b5e622446f1ddcdf3 (diff)
downloadrabbitmq-server-git-67ad54151557f9e5f08f249a2f8f7eff6a8554ea.tar.gz
Add a bazel rule for generating erlang_ls.config
If you are using bazel, you can switch to this with: 1. `bazelisk build //tools:erlang_ls.config` 2. `cp bazel-bin/tools/erlang_ls.config erlang_ls.config`
-rw-r--r--tools/BUILD.bazel5
-rw-r--r--tools/erlang_ls.bzl35
2 files changed, 40 insertions, 0 deletions
diff --git a/tools/BUILD.bazel b/tools/BUILD.bazel
new file mode 100644
index 0000000000..e90ac62a9b
--- /dev/null
+++ b/tools/BUILD.bazel
@@ -0,0 +1,5 @@
+load(":erlang_ls.bzl", "erlang_ls_config")
+
+erlang_ls_config(
+ name = "erlang_ls.config",
+)
diff --git a/tools/erlang_ls.bzl b/tools/erlang_ls.bzl
new file mode 100644
index 0000000000..c5820b08ec
--- /dev/null
+++ b/tools/erlang_ls.bzl
@@ -0,0 +1,35 @@
+load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider")
+
+def _impl(ctx):
+ out = ctx.actions.declare_file(ctx.label.name)
+
+ erlang_home = ctx.attr._erlang_home[ErlangHomeProvider].path
+
+ ctx.actions.write(
+ output = out,
+ content = """otp_path: {erlang_home}
+apps_dirs:
+ - deps/*
+deps_dirs:
+ - bazel-bin/external/*
+include_dirs:
+ - deps
+ - deps/*/include
+ - bazel-bin/external
+ - bazel-bin/external/*/include
+plt_path: bazel-bin/deps/rabbit/.base_plt.plt
+""".format(
+ erlang_home = erlang_home,
+ ),
+ )
+
+ return [
+ DefaultInfo(files = depset([out])),
+ ]
+
+erlang_ls_config = rule(
+ implementation = _impl,
+ attrs = {
+ "_erlang_home": attr.label(default = "@bazel-erlang//:erlang_home"),
+ },
+)