@@ -69,15 +69,15 @@ def _select_golden_requirements_file(
69
69
70
70
71
71
@click .command (context_settings = {"ignore_unknown_options" : True })
72
- @click .argument ( "requirements_in" )
72
+ @click .option ( "--in" , "requirements_ins" , multiple = True , required = True )
73
73
@click .argument ("requirements_txt" )
74
74
@click .argument ("update_target_label" )
75
75
@click .option ("--requirements-linux" )
76
76
@click .option ("--requirements-darwin" )
77
77
@click .option ("--requirements-windows" )
78
78
@click .argument ("extra_args" , nargs = - 1 , type = click .UNPROCESSED )
79
79
def main (
80
- requirements_in : str ,
80
+ requirements_ins : Tuple [ str , ...] ,
81
81
requirements_txt : str ,
82
82
update_target_label : str ,
83
83
requirements_linux : Optional [str ],
@@ -87,8 +87,8 @@ def main(
87
87
) -> None :
88
88
# The requirements_in file could be generated, so we will need to remove the
89
89
# absolute prefixes in the locked requirements output file.
90
- requirements_in_path = Path (requirements_in )
91
- resolved_requirements_in = str (requirements_in_path .resolve ())
90
+ requirements_in_paths = [ Path (f ) for f in requirements_ins ]
91
+ resolved_requirements_ins = [ str (p .resolve ()) for p in requirements_in_paths ]
92
92
93
93
# Before loading click, set the locale for its parser.
94
94
# If it leaks through to the system setting, it may fail:
@@ -126,11 +126,16 @@ def main(
126
126
127
127
argv .append ("--generate-hashes" )
128
128
argv .append (f"--output-file={ requirements_txt if UPDATE else requirements_out } " )
129
- argv .append (
130
- requirements_in if requirements_in_path .exists () else resolved_requirements_in
129
+ argv .extend (
130
+ (req_in if req_in_path .exists () else resolved_req_in )
131
+ for req_in , req_in_path , resolved_req_in in zip (
132
+ requirements_ins , requirements_in_paths , resolved_requirements_ins
133
+ )
131
134
)
132
135
argv .extend (extra_args )
133
136
137
+ argv .extend (extra_args )
138
+
134
139
if UPDATE :
135
140
print ("Updating " + requirements_txt )
136
141
if "BUILD_WORKSPACE_DIRECTORY" in os .environ :
@@ -156,7 +161,7 @@ def main(
156
161
print (
157
162
"pip-compile exited with code 2. This means that pip-compile found "
158
163
"incompatible requirements or could not find a version that matches "
159
- f"the install requirement in { requirements_in } ." ,
164
+ f"the install requirement in one of { requirements_ins } ." ,
160
165
file = sys .stderr ,
161
166
)
162
167
sys .exit (1 )
0 commit comments