diff options
| author | Rin Kuryloski <kuryloskip@vmware.com> | 2022-09-29 12:28:30 +0200 |
|---|---|---|
| committer | Rin Kuryloski <kuryloskip@vmware.com> | 2022-09-29 15:09:53 +0200 |
| commit | ef876ace0b0b7652b64e21c71810f5a4c8af88e9 (patch) | |
| tree | a816d7330f0d424cdb1c1f44889c778917779f17 | |
| parent | f7ed42d7fd6d6babb3c990374a31bcd592377fed (diff) | |
| download | rabbitmq-server-git-mergify/bp/v3.11.x/pr-5919.tar.gz | |
Enhance inference of ELIXIR_HOME from the path of iex/elixirmergify/bp/v3.11.x/pr-5919
(cherry picked from commit a7356727871993fcc15c0dfc8675b5b16c87dd0b)
| -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( [ |
