@@ -301,12 +301,33 @@ task.registerTask('default', 'lint qunit');
301
301
task . registerTask ( 'build' , 'concat min css_min' ) ;
302
302
task . registerTask ( 'release' , 'build copy:dist copy:dist_min copy:dist_min_images copy:dist_css_min zip:dist' ) ;
303
303
task . registerTask ( 'release_themes' , 'build download_themes zip:themes' ) ;
304
- // TODO includes other themes in cdn release
304
+ // TODO include other themes in cdn release
305
305
task . registerTask ( 'release_cdn' , 'build copy:cdn copy:cdn_min copy:cdn_i18n copy:cdn_i18n_min copy:cdn_css_min md5 zip:cdn' ) ;
306
306
307
307
task . registerTask ( 'download_themes' , function ( ) {
308
- // TODO use request.get to download the files specified in build/themes
308
+ var AdmZip = require ( 'adm-zip' ) ;
309
+ var done = this . async ( ) ;
310
+ var fs = require ( 'fs' ) ;
311
+ var request = require ( 'request' ) ;
312
+ var themes = file . read ( 'build/themes' ) . split ( ',' ) . slice ( 0 , 1 ) ;
313
+ var requests = 0 ;
314
+ file . mkdir ( 'dist/tmp' ) ;
315
+ themes . forEach ( function ( theme , index ) {
316
+ requests += 1 ;
317
+ file . mkdir ( 'dist/tmp/' + index ) ;
318
+ var zipFileName = 'dist/tmp/' + index + '.zip' ;
319
+ var out = fs . createWriteStream ( zipFileName ) ;
320
+ out . on ( 'close' , function ( ) {
321
+ log . writeln ( "done downloading " + zipFileName ) ;
322
+ var zip = new AdmZip ( zipFileName ) ;
323
+ zip . extractAllTo ( 'dist/tmp/' + index + '/' ) ;
324
+ requests -= 1 ;
325
+ if ( requests === 0 ) {
326
+ done ( ) ;
327
+ }
328
+ } ) ;
329
+ request ( 'http://ui-dev.jquery.com/download/?' + theme ) . pipe ( out ) ;
330
+ } ) ;
309
331
} ) ;
310
332
311
333
// TODO add size task, see also build/sizer.js - copy from core grunt.js
312
- // TODO add themes download task, part of release_cdn task
0 commit comments