summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRin Kuryloski <kuryloskip@vmware.com>2022-09-29 12:28:30 +0200
committerRin Kuryloski <kuryloskip@vmware.com>2022-09-29 15:09:53 +0200
commitef876ace0b0b7652b64e21c71810f5a4c8af88e9 (patch)
treea816d7330f0d424cdb1c1f44889c778917779f17
parentf7ed42d7fd6d6babb3c990374a31bcd592377fed (diff)
downloadrabbitmq-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.bzl34
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(
[