11var
22 fs = require ( "fs" ) ,
33 shell = require ( "shelljs" ) ,
4+ path = require ( "path" ) ,
45
56 cdnFolder = "dist/cdn" ,
67
2021
2122 msFilesCDN = [
2223 "jquery-compat-VER.js" , "jquery-compat-VER.min.js" , "jquery-compat-VER.min.map"
23- ] ;
24+ ] ,
25+
26+ rver = / V E R / ,
27+ rcompat = / \- c o m p a t \. / g;
2428
2529/**
2630 * Generates copies for the CDNs
2731 */
2832function makeReleaseCopies ( Release ) {
33+ var version = Release . newVersion . replace ( "-compat" , "" ) ;
2934 shell . mkdir ( "-p" , cdnFolder ) ;
3035
3136 Object . keys ( releaseFiles ) . forEach ( function ( key ) {
3237 var text ,
3338 builtFile = releaseFiles [ key ] ,
34- unpathedFile = key . replace ( / V E R / g, Release . newVersion ) ,
39+ unpathedFile = key . replace ( / V E R / g, version ) ,
3540 releaseFile = cdnFolder + "/" + unpathedFile ;
3641
3742 if ( / \. m a p $ / . test ( releaseFile ) ) {
@@ -55,52 +60,72 @@ function makeReleaseCopies( Release ) {
5560 } ) ;
5661}
5762
58- function makeArchive ( Release , cdn , files ) {
59- if ( Release . preRelease ) {
60- console . log ( "Skipping archive creation for " + cdn + "; this is a beta release." ) ;
61- return ;
62- }
63+ function makeArchives ( Release , callback ) {
6364
64- console . log ( "Creating production archive for " + cdn ) ;
65+ Release . chdir ( Release . dir . repo ) ;
6566
66- var archiver = require ( "archiver" ) ( "zip" ) ,
67- md5file = cdnFolder + "/" + cdn + "-md5.txt" ,
68- output = fs . createWriteStream (
69- cdnFolder + "/" + cdn + "-jquery-" + Release . newVersion + ".zip"
70- ) ;
67+ var version = Release . newVersion . replace ( "-compat" , "" ) ;
7168
72- output . on ( "error" , function ( err ) {
73- throw err ;
74- } ) ;
69+ function makeArchive ( cdn , files , callback ) {
70+ if ( Release . preRelease ) {
71+ console . log ( "Skipping archive creation for " + cdn + "; this is a beta release." ) ;
72+ callback ( ) ;
73+ return ;
74+ }
7575
76- archiver . pipe ( output ) ;
76+ console . log ( "Creating production archive for " + cdn ) ;
7777
78- files = files . map ( function ( item ) {
79- return cdnFolder + "/" + item . replace ( / V E R / g, Release . newVersion ) ;
80- } ) ;
78+ var sum ,
79+ archiver = require ( "archiver" ) ( "zip" ) ,
80+ md5file = cdnFolder + "/" + cdn + "-md5.txt" ,
81+ output = fs . createWriteStream (
82+ cdnFolder + "/" + cdn + "-jquery-compat-" + version + ".zip"
83+ ) ;
84+
85+ output . on ( "close" , callback ) ;
86+
87+ output . on ( "error" , function ( err ) {
88+ throw err ;
89+ } ) ;
90+
91+ archiver . pipe ( output ) ;
8192
82- shell . exec ( "md5sum" , files , function ( code , stdout ) {
83- fs . writeFileSync ( md5file , stdout ) ;
93+ files = files . map ( function ( item ) {
94+ return "dist" + ( rver . test ( item ) ? "/cdn" : "" ) + "/" +
95+ item . replace ( rver , version ) ;
96+ } ) ;
97+
98+ sum = Release . exec (
99+ // Read jQuery files
100+ "md5sum " + files . join ( " " ) . replace ( rcompat , "." ) ,
101+ "Error retrieving md5sum"
102+ ) ;
103+ fs . writeFileSync ( "./" + md5file , sum ) ;
84104 files . push ( md5file ) ;
85105
86106 files . forEach ( function ( file ) {
87- archiver . append ( fs . createReadStream ( file ) , { name : file } ) ;
107+ // For Google, read jquery.js, write jquery-compat.js
108+ archiver . append ( fs . createReadStream ( file . replace ( rcompat , "." ) ) ,
109+ { name : path . basename ( file ) } ) ;
88110 } ) ;
89111
90112 archiver . finalize ( ) ;
91- } ) ;
92- }
113+ }
93114
94- function buildGoogleCDN ( Release ) {
95- makeArchive ( Release , "googlecdn" , googleFilesCDN ) ;
96- }
115+ function buildGoogleCDN ( callback ) {
116+ makeArchive ( "googlecdn" , googleFilesCDN , callback ) ;
117+ }
97118
98- function buildMicrosoftCDN ( Release ) {
99- makeArchive ( Release , "mscdn" , msFilesCDN ) ;
119+ function buildMicrosoftCDN ( callback ) {
120+ makeArchive ( "mscdn" , msFilesCDN , callback ) ;
121+ }
122+
123+ buildGoogleCDN ( function ( ) {
124+ buildMicrosoftCDN ( callback ) ;
125+ } ) ;
100126}
101127
102128module . exports = {
103129 makeReleaseCopies : makeReleaseCopies ,
104- buildGoogleCDN : buildGoogleCDN ,
105- buildMicrosoftCDN : buildMicrosoftCDN
130+ makeArchives : makeArchives
106131} ;
0 commit comments