|  | # https://code.google.com/p/closure-compiler/wiki/BinaryDownloads?tm=2 | 
|  | CLOSURE_VERSION = '20140407' | 
|  | CLOSURE_COMPILER_URL = 'http://dl.google.com/closure-compiler/compiler-%s.zip' % CLOSURE_VERSION | 
|  | COMPILER = 'compiler.jar' | 
|  | CLOSURE_COMPILER_SHA1 = 'eeb02bfd45eb4a080b66dd423eaee4bdd1d674e9' | 
|  |  | 
|  | def js_minify( | 
|  | name, | 
|  | out, | 
|  | compiler_args = [], | 
|  | srcs = [], | 
|  | generated = []): | 
|  | cmd = ['$(exe :js_minifier) --js_output_file $OUT'] + compiler_args | 
|  | if srcs: | 
|  | cmd.append('$SRCS') | 
|  | if generated: | 
|  | cmd.extend(['$(location %s)' % n for n in generated]) | 
|  |  | 
|  | genrule( | 
|  | name = name, | 
|  | cmd = ' '.join(cmd), | 
|  | srcs = srcs, | 
|  | out = out, | 
|  | ) | 
|  |  | 
|  | java_binary( | 
|  | name = 'js_minifier', | 
|  | main_class = 'com.google.javascript.jscomp.CommandLineRunner', | 
|  | deps = [':compiler-jar'] | 
|  | ) | 
|  |  | 
|  | prebuilt_jar( | 
|  | name = 'compiler-jar', | 
|  | binary_jar = ':compiler', | 
|  | ) | 
|  |  | 
|  | genrule( | 
|  | name = 'compiler', | 
|  | cmd = 'unzip -p $(location :closure-compiler-zip) %s >$OUT' % COMPILER, | 
|  | out = COMPILER, | 
|  | ) | 
|  |  | 
|  | genrule( | 
|  | name = 'closure-compiler-zip', | 
|  | cmd = '$(exe //tools:download_file)' + | 
|  | ' -o $OUT' + | 
|  | ' -u ' + CLOSURE_COMPILER_URL + | 
|  | ' -v ' + CLOSURE_COMPILER_SHA1, | 
|  | out = 'closure-compiler.zip', | 
|  | ) |