@@ -12,7 +12,7 @@ load(":repositories.bzl", "bazeldnf_register_toolchains")
12
12
_ALIAS_TEMPLATE = """\
13
13
alias(
14
14
name = "{name}",
15
- actual = "@{name }//rpm",
15
+ actual = "@{actual_name }//rpm",
16
16
visibility = ["//visibility:public"],
17
17
)
18
18
"""
@@ -54,13 +54,24 @@ def _alias_repository_impl(repository_ctx):
54
54
),
55
55
)
56
56
for rpm in repository_ctx .attr .rpms :
57
- repo_name = rpm .repo_name
58
- repository_ctx .file ("%s/BUILD.bazel" % repo_name , _ALIAS_TEMPLATE .format (name = repo_name ))
57
+ actual_name = rpm .repo_name
58
+ name = actual_name .split (repository_ctx .attr .repository_prefix , 1 )[1 ]
59
+ repository_ctx .file (
60
+ "%s/BUILD.bazel" % name ,
61
+ _ALIAS_TEMPLATE .format (
62
+ name = name ,
63
+ actual_name = actual_name ,
64
+ ),
65
+ )
66
+
59
67
if not repository_ctx .attr .rpms :
60
68
for rpm in repository_ctx .attr .rpms_to_install :
61
69
repository_ctx .file (
62
70
"%s/BUILD.bazel" % rpm ,
63
- _UPDATE_LOCK_FILE_TEMPLATE .format (repo = repository_ctx .name .rsplit ("~" , 1 )[- 1 ]),
71
+ _UPDATE_LOCK_FILE_TEMPLATE .format (
72
+ repo = repository_ctx .name .rsplit ("~" , 1 )[- 1 ]
73
+ .split (repository_ctx .attr .repository_prefix , 1 )[1 ],
74
+ ),
64
75
)
65
76
66
77
_alias_repository = repository_rule (
@@ -71,6 +82,7 @@ _alias_repository = repository_rule(
71
82
"rpms_to_install" : attr .string_list (),
72
83
"excludes" : attr .string_list (),
73
84
"repofile" : attr .label (),
85
+ "repository_prefix" : attr .string (),
74
86
},
75
87
)
76
88
@@ -86,6 +98,7 @@ def _handle_lock_file(config, module_ctx, registered_rpms = {}):
86
98
"rpms_to_install" : config .rpms ,
87
99
"excludes" : config .excludes ,
88
100
"repofile" : config .repofile ,
101
+ "repository_prefix" : config .rpm_repository_prefix ,
89
102
}
90
103
91
104
if not module_ctx .path (config .lock_file ).exists :
@@ -97,13 +110,11 @@ def _handle_lock_file(config, module_ctx, registered_rpms = {}):
97
110
content = module_ctx .read (config .lock_file )
98
111
lock_file_json = json .decode (content )
99
112
100
- rpms = []
101
-
102
113
for rpm in lock_file_json .get ("packages" , []):
103
114
dependencies = rpm .pop ("dependencies" , [])
104
- dependencies = [x .replace ("+" , "pp " ) for x in dependencies ]
115
+ dependencies = [x .replace ("+" , "plus " ) for x in dependencies ]
105
116
dependencies = ["@{}{}//rpm" .format (config .rpm_repository_prefix , x ) for x in dependencies ]
106
- name = rpm .pop ("name" ).replace ("+" , "pp " )
117
+ name = rpm .pop ("name" ).replace ("+" , "plus " )
107
118
name = "{}{}" .format (config .rpm_repository_prefix , name )
108
119
if name in registered_rpms :
109
120
continue
@@ -120,9 +131,8 @@ def _handle_lock_file(config, module_ctx, registered_rpms = {}):
120
131
urls = urls ,
121
132
** rpm
122
133
)
123
- rpms .append (name )
124
134
125
- repository_args ["rpms" ] = ["@@%s//rpm" % x for x in rpms ]
135
+ repository_args ["rpms" ] = ["@@%s//rpm" % x for x in registered_rpms . keys () ]
126
136
127
137
_alias_repository (
128
138
** repository_args
0 commit comments