|
1 | 1 | module.exports = function( Release ) {
|
2 | 2 |
|
| 3 | +var crypto = require( "crypto" ); |
3 | 4 | var shell = require( "shelljs" ),
|
4 | 5 | path = require( "path" ),
|
5 | 6 | fs = require( "fs" );
|
@@ -34,23 +35,41 @@ function replaceAtVersion() {
|
34 | 35 | return matches;
|
35 | 36 | }
|
36 | 37 |
|
| 38 | +function addManifest( packager ) { |
| 39 | + var output = packager.builtFiles; |
| 40 | + output.MANIFEST = Object.keys( output ).sort( function( a, b ) { |
| 41 | + return a.localeCompare( b ); |
| 42 | + } ).map( function( filepath ) { |
| 43 | + var md5 = crypto.createHash( "md5" ); |
| 44 | + md5.update( output[ filepath ] ); |
| 45 | + return filepath + " " + md5.digest( "hex" ); |
| 46 | + } ).join( "\n" ); |
| 47 | +} |
| 48 | + |
37 | 49 | function buildCDNPackage( callback ) {
|
38 | 50 | console.log( "Building CDN package" );
|
39 |
| - var downloadBuilder = require( "download.jqueryui.com" ), |
40 |
| - jqueryUi = new downloadBuilder.JqueryUi( path.resolve( "." ) ), |
41 |
| - builder = new downloadBuilder.Builder( jqueryUi, ":all:" ), |
42 |
| - packer = new downloadBuilder.ThemesPacker( builder, { |
43 |
| - includeJs: true |
| 51 | + var JqueryUi = require( "download.jqueryui.com/lib/jquery-ui" ); |
| 52 | + var Package = require( "download.jqueryui.com/lib/package-1-12-themes" ); |
| 53 | + var Packager = require( "node-packager" ); |
| 54 | + var jqueryUi = new JqueryUi( path.resolve( "." ) ); |
| 55 | + var target = fs.createWriteStream( "../" + jqueryUi.pkg.name + "-" + jqueryUi.pkg.version + "-cdn.zip" ); |
| 56 | + var packager = new Packager( jqueryUi.files().cache, Package, { |
| 57 | + components: jqueryUi.components().map( function( component ) { |
| 58 | + return component.name; |
44 | 59 | } ),
|
45 |
| - target = "../" + jqueryUi.pkg.name + "-" + jqueryUi.pkg.version + "-cdn.zip"; |
46 |
| - |
47 |
| - // Zip dir structure must be flat, override default base folder |
48 |
| - packer.basedir = ""; |
49 |
| - packer.zipTo( target, function( error ) { |
50 |
| - if ( error ) { |
51 |
| - Release.abort( "Failed to zip CDN package", error ); |
52 |
| - } |
53 |
| - callback(); |
| 60 | + jqueryUi: jqueryUi, |
| 61 | + themeVars: null |
| 62 | + } ); |
| 63 | + packager.ready.then( function() { |
| 64 | + addManifest( packager ); |
| 65 | + packager.toZip( target, { |
| 66 | + basedir: "" |
| 67 | + }, function( error ) { |
| 68 | + if ( error ) { |
| 69 | + Release.abort( "Failed to zip CDN package", error ); |
| 70 | + } |
| 71 | + callback(); |
| 72 | + } ); |
54 | 73 | } );
|
55 | 74 | }
|
56 | 75 |
|
@@ -91,6 +110,7 @@ Release.define( {
|
91 | 110 | };
|
92 | 111 |
|
93 | 112 | module.exports.dependencies = [
|
94 |
| - "download.jqueryui.com@2.1.1", |
| 113 | + "download.jqueryui.com@2.1.2", |
| 114 | + "node-packager@0.0.6", |
95 | 115 | "shelljs@0.2.6"
|
96 | 116 | ];
|
0 commit comments