Skip to content

Commit 9a24d1a

Browse files
authored
Merge pull request #87 from rabbitmq/error-on-erlang-installation-conflicts
Fail on erlang installation name conflicts
2 parents 48954d1 + 5dd5e07 commit 9a24d1a

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

bzlmod/extensions.bzl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,42 @@ def _erlang_config(ctx):
3939
strip_prefixs = {}
4040
sha256s = {}
4141
erlang_homes = {}
42+
owners_by_name = {}
4243

4344
for mod in ctx.modules:
4445
for erlang in mod.tags.external_erlang_from_path:
46+
if erlang.name in types:
47+
fail("{} declares an erlang installation named {}, but the name is already used by {}".format(
48+
mod.name,
49+
erlang.name,
50+
owners_by_name[erlang.name].name,
51+
))
4552
types[erlang.name] = INSTALLATION_TYPE_EXTERNAL
4653
versions[erlang.name] = erlang.version
4754
erlang_homes[erlang.name] = erlang.erlang_home
55+
owners_by_name[erlang.name] = mod
4856

4957
for erlang in mod.tags.internal_erlang_from_http_archive:
58+
if erlang.name in types:
59+
fail("{} declares an erlang installation named {}, but the name is already used by {}".format(
60+
mod.name,
61+
erlang.name,
62+
owners_by_name[erlang.name].name,
63+
))
5064
types[erlang.name] = INSTALLATION_TYPE_INTERNAL
5165
versions[erlang.name] = erlang.version
5266
urls[erlang.name] = erlang.url
5367
strip_prefixs[erlang.name] = erlang.strip_prefix
5468
sha256s[erlang.name] = erlang.sha256
69+
owners_by_name[erlang.name] = mod
5570

5671
for erlang in mod.tags.internal_erlang_from_github_release:
72+
if erlang.name in types:
73+
fail("{} declares an erlang installation named {}, but the name is already used by {}".format(
74+
mod.name,
75+
erlang.name,
76+
owners_by_name[erlang.name].name,
77+
))
5778
url = "https://github.com/erlang/otp/releases/download/OTP-{v}/otp_src_{v}.tar.gz".format(
5879
v = erlang.version,
5980
)
@@ -69,6 +90,7 @@ def _erlang_config(ctx):
6990
urls[erlang.name] = url
7091
strip_prefixs[erlang.name] = strip_prefix
7192
sha256s[erlang.name] = sha256
93+
owners_by_name[erlang.name] = mod
7294

7395
_erlang_config_rule(
7496
name = "erlang_config",

0 commit comments

Comments
 (0)