@@ -80,15 +80,15 @@ def _locate(bazel_runfiles, file):
80
80
81
81
82
82
@click .command (context_settings = {"ignore_unknown_options" : True })
83
- @click .argument ( "requirements_in" )
83
+ @click .option ( "--in" , "requirements_ins" , multiple = True , required = True )
84
84
@click .argument ("requirements_txt" )
85
85
@click .argument ("update_target_label" )
86
86
@click .option ("--requirements-linux" )
87
87
@click .option ("--requirements-darwin" )
88
88
@click .option ("--requirements-windows" )
89
89
@click .argument ("extra_args" , nargs = - 1 , type = click .UNPROCESSED )
90
90
def main (
91
- requirements_in : str ,
91
+ requirements_ins : Tuple [ str , ...] ,
92
92
requirements_txt : str ,
93
93
update_target_label : str ,
94
94
requirements_linux : Optional [str ],
@@ -98,7 +98,7 @@ def main(
98
98
) -> None :
99
99
bazel_runfiles = runfiles .Create ()
100
100
101
- resolved_requirements_in = _locate (bazel_runfiles , requirements_in )
101
+ resolved_requirements_ins = [ _locate (bazel_runfiles , f ) for f in requirements_ins ]
102
102
resolved_requirements_txt = _locate (bazel_runfiles , requirements_txt )
103
103
104
104
# Files in the runfiles directory has the following naming schema:
@@ -115,7 +115,7 @@ def main(
115
115
# use the runfiles file first. Thus, we need to compute the relative path
116
116
# from the execution root.
117
117
# Note: Windows cannot reference generated files without runfiles support enabled.
118
- requirements_in_relative = requirements_in [ len (repository_prefix ) :]
118
+ requirements_ins_relative = [ f [ len (repository_prefix ) :] for f in requirements_ins ]
119
119
requirements_txt_relative = requirements_txt [len (repository_prefix ) :]
120
120
121
121
# Before loading click, set the locale for its parser.
@@ -154,10 +154,15 @@ def main(
154
154
155
155
argv .append ("--generate-hashes" )
156
156
argv .append (f"--output-file={ requirements_txt_relative if UPDATE else requirements_out } " )
157
- argv .append (
158
- requirements_in_relative
159
- if Path (requirements_in_relative ).exists ()
160
- else resolved_requirements_in
157
+ argv .extend (
158
+ (
159
+ requirements_in_relative
160
+ if Path (requirements_in_relative ).exists ()
161
+ else resolved_requirements_in
162
+ )
163
+ for requirements_in_relative , resolved_requirements_in
164
+ in zip (requirements_ins_relative , resolved_requirements_ins )
165
+
161
166
)
162
167
argv .extend (extra_args )
163
168
@@ -192,7 +197,7 @@ def main(
192
197
print (
193
198
"pip-compile exited with code 2. This means that pip-compile found "
194
199
"incompatible requirements or could not find a version that matches "
195
- f"the install requirement in { requirements_in_relative } ." ,
200
+ f"the install requirement in one of { requirements_ins_relative } ." ,
196
201
file = sys .stderr ,
197
202
)
198
203
sys .exit (1 )
0 commit comments