diff options
| author | Rin Kuryloski <kuryloskip@vmware.com> | 2022-09-29 12:28:30 +0200 |
|---|---|---|
| committer | Rin Kuryloski <kuryloskip@vmware.com> | 2022-09-29 17:29:28 +0200 |
| commit | b748e31abd4ce86095f01e867a1c48b7e319ad8c (patch) | |
| tree | e13ed836c2ed773fc881c5b5d4b61c3901c3c400 | |
| parent | fa0900138802a97b426cf78d9935c478d04e6008 (diff) | |
| download | rabbitmq-server-git-mergify/bp/v3.10.x/pr-5923.tar.gz | |
Enhance inference of ELIXIR_HOME from the path of iex/elixirmergify/bp/v3.10.x/pr-5923
(cherry picked from commit a7356727871993fcc15c0dfc8675b5b16c87dd0b)
(cherry picked from commit ef876ace0b0b7652b64e21c71810f5a4c8af88e9)
| -rw-r--r-- | bazel/repositories/elixir_config.bzl | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/bazel/repositories/elixir_config.bzl b/bazel/repositories/elixir_config.bzl index ccdbc6a35e..553e5b4865 100644 --- a/bazel/repositories/elixir_config.bzl +++ b/bazel/repositories/elixir_config.bzl @@ -118,6 +118,20 @@ elixir_config = repository_rule( ], ) +def _elixir_home_from_elixir_path(repository_ctx, elixir_path): + ehr = repository_ctx.execute( + [ + elixir_path, + "-e", + "IO.puts Path.dirname(Path.dirname(Path.dirname(Path.dirname(Path.expand(:code.which(System))))))", + ], + ) + if ehr.return_code == 0: + elixir_home = ehr.stdout.strip("\n") + else: + elixir_home = str(elixir_path.dirname.dirname) + return elixir_home + def _is_windows(repository_ctx): return repository_ctx.os.name.lower().find("windows") != -1 @@ -125,21 +139,21 @@ def _default_elixir_dict(repository_ctx): if _is_windows(repository_ctx): if ELIXIR_HOME_ENV_VAR in repository_ctx.os.environ: elixir_home = repository_ctx.os.environ[ELIXIR_HOME_ENV_VAR] - iex_path = elixir_home + "\\bin\\iex" + elixir_path = elixir_home + "\\bin\\elixir" else: - iex_path = repository_ctx.which("iex") - if iex_path == None: - iex_path = repository_ctx.path("C:/Program Files (x86)/Elixir/bin/iex") - elixir_home = str(iex_path.dirname.dirname) + elixir_path = repository_ctx.which("elixir") + if elixir_path == None: + elixir_path = repository_ctx.path("C:/Program Files (x86)/Elixir/bin/elixir") + elixir_home = _elixir_home_from_elixir_path(repository_ctx, elixir_path) elixir_home = msys2_path(elixir_home) elif ELIXIR_HOME_ENV_VAR in repository_ctx.os.environ: elixir_home = repository_ctx.os.environ[ELIXIR_HOME_ENV_VAR] - iex_path = path_join(elixir_home, "bin", "elixir") + elixir_path = path_join(elixir_home, "bin", "elixir") else: - iex_path = repository_ctx.which("iex") - if iex_path == None: - iex_path = repository_ctx.path("/usr/local/bin/iex") - elixir_home = str(iex_path.dirname.dirname) + elixir_path = repository_ctx.which("elixir") + if elixir_path == None: + elixir_path = repository_ctx.path("/usr/local/bin/elixir") + elixir_home = _elixir_home_from_elixir_path(repository_ctx, elixir_path) version = repository_ctx.execute( [ |
