@@ -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