Turn the //tools:erlang_ls.config target into a generation script

So that one can `bazel run tools:erlang_ls.config > erlang_ls.config`
to generate a bazel friendly config
This commit is contained in:
Rin Kuryloski 2022-09-30 13:39:25 +02:00
parent ec337d0866
commit 25ed8595c3
1 changed files with 26 additions and 33 deletions

View File

@ -2,10 +2,6 @@ load(
"@rules_erlang//:erlang_app_info.bzl",
"ErlangAppInfo",
)
load(
"@rules_erlang//tools:erlang_toolchain.bzl",
"erlang_dirs",
)
load(
"@rules_erlang//:util.bzl",
"path_join",
@ -16,40 +12,37 @@ load(
)
def _erlang_ls_config(ctx):
out = ctx.actions.declare_file(ctx.label.name)
(erlang_home, _, _) = erlang_dirs(ctx)
ctx.actions.write(
output = out,
content = """otp_path: {erlang_home}
apps_dirs:
- deps/*
- deps/rabbit/apps/*
deps_dirs:
- bazel-bin/external/*
include_dirs:
- deps
- deps/*
- deps/*/include
- deps/*/src
- bazel-bin/external
- bazel-bin/external/*/include
plt_path: bazel-bin/deps/rabbit/.base_plt.plt
""".format(
erlang_home = erlang_home,
),
runtime_prefix = path_join(
ctx.label.package,
ctx.label.name + ".runfiles",
ctx.workspace_name,
)
return [
DefaultInfo(files = depset([out])),
]
ctx.actions.write(
output = ctx.outputs.executable,
content = """#!/usr/bin/env bash
set -euo pipefail
BAZEL_BIN_ABSOLUTE_PATH="${{PWD%/{}}}"
cat << EOF
apps_dirs:
- ${{BAZEL_BIN_ABSOLUTE_PATH}}/tools/erlang_ls_files/apps/*
deps_dirs:
- ${{BAZEL_BIN_ABSOLUTE_PATH}}/tools/erlang_ls_files/deps/*
include_dirs:
- ${{BAZEL_BIN_ABSOLUTE_PATH}}/tools/erlang_ls_files/apps
- ${{BAZEL_BIN_ABSOLUTE_PATH}}/tools/erlang_ls_files/apps/*/include
- ${{BAZEL_BIN_ABSOLUTE_PATH}}/tools/erlang_ls_files/deps
- ${{BAZEL_BIN_ABSOLUTE_PATH}}/tools/erlang_ls_files/deps/*/include
EOF
""".format(runtime_prefix),
)
erlang_ls_config = rule(
implementation = _erlang_ls_config,
toolchains = [
"@rules_erlang//tools:toolchain_type",
],
executable = True,
)
def _erlang_app_files(ctx, app, directory):