@@ -183,6 +183,40 @@ def buck(*args, &block)
183
183
short = task . name [ 0 ..-5 ]
184
184
185
185
task . enhance do
186
+ dir , target = short [ 2 ..-1 ] . split ( ':' , 2 )
187
+ working_dir = "buck-out/crazy-fun/#{ dir } /#{ target } _zip"
188
+
189
+ # Build the source zip
190
+ Buck ::buck_cmd . call ( 'query' , [ "kind(java_library, deps(#{ short } ))" ] ) do |output |
191
+ # Collect all the targets
192
+ to_build = [ ]
193
+ output . lines do |line |
194
+ line . chomp!
195
+ to_build . push ( line + "#src" )
196
+ end
197
+
198
+ src_dir = "buck-out/crazy-fun/#{ dir } /#{ target } _src_zip"
199
+ src_out = "#{ working_dir } /#{ target } -#{ version } -nodeps-sources.zip"
200
+ mkdir_p File . dirname ( src_out )
201
+ rm_f src_out
202
+ rm_rf src_dir
203
+
204
+ mkdir_p src_dir
205
+ mkdir_p "#{ working_dir } /lib"
206
+ mkdir_p "#{ working_dir } /uber"
207
+
208
+ Buck ::buck_cmd . call ( 'build' , [ '--show-output' ] + to_build ) do |built |
209
+ built . lines do |line |
210
+ line . chomp!
211
+ line . split [ 1 ] . each do |file |
212
+ next unless File . exists? file
213
+ sh "cd #{ src_dir } && jar xf #{ File . expand_path ( file ) } "
214
+ end
215
+ end
216
+ end
217
+ sh "cd #{ src_dir } && jar cMf #{ File . expand_path ( src_out ) } *"
218
+ end
219
+
186
220
# Figure out if this is an executable or a test target.
187
221
Buck ::buck_cmd . call ( 'audit' , [ 'classpath' , short ] ) do |output |
188
222
third_party = [ ]
@@ -199,13 +233,6 @@ def buck(*args, &block)
199
233
end
200
234
end
201
235
202
- dir , target = short [ 2 ..-1 ] . split ( ':' , 2 )
203
- working_dir = "buck-out/crazy-fun/#{ dir } /#{ target } _zip"
204
- out = "buck-out/crazy-fun/#{ dir } /#{ target } .zip"
205
- rm_rf working_dir
206
- mkdir_p "#{ working_dir } /lib"
207
- mkdir_p "#{ working_dir } /uber"
208
-
209
236
first_party . each do |jar |
210
237
sh "cd #{ working_dir } /uber && jar xf #{ jar } "
211
238
end
@@ -214,8 +241,9 @@ def buck(*args, &block)
214
241
version = File . open ( 'SELENIUM_VERSION' , &:gets ) . chomp
215
242
version = eval ( version )
216
243
244
+ out = "buck-out/crazy-fun/#{ dir } /#{ target } .zip"
245
+
217
246
sh "cd #{ working_dir } /uber && jar cMf ../#{ target } -#{ version } -nodeps.jar *"
218
- # TODO: Get the sources of all deps too and build the -src.jar
219
247
rm_rf "#{ working_dir } /uber"
220
248
221
249
third_party . each do |jar |
0 commit comments