From 0645ac45edc383ae30f17ce9e21a92d934ea5931 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=CC=88rn=20Zaefferer?= Date: Tue, 6 May 2014 16:23:06 +0200 Subject: [PATCH] Build: Replace @VERSION in release tags Fixes #10006 Closes gh-1239 --- build/release.js | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/build/release.js b/build/release.js index 6362ca498..5999d036f 100644 --- a/build/release.js +++ b/build/release.js @@ -1,7 +1,38 @@ module.exports = function( Release ) { var shell = require( "shelljs" ), - path = require( "path" ); + path = require( "path" ), + fs = require( "fs" ); + +function replaceAtVersion() { + console.log( "Replacing @VERSION..." ); + var matches = []; + + function recurse( folder ) { + fs.readdirSync( folder ).forEach(function( fileName ) { + var content, + fullPath = folder + "/" + fileName; + if ( fs.statSync( fullPath ).isDirectory() ) { + recurse( fullPath ); + return; + } + content = fs.readFileSync( fullPath, { + encoding: "utf-8" + }); + if ( !/@VERSION/.test( content ) ) { + return; + } + matches.push( fullPath ); + fs.writeFileSync( fullPath, content.replace( /@VERSION/g, Release.newVersion ) ); + }); + } + + [ "ui", "themes" ].forEach( recurse ); + + console.log( "Replaced @VERSION in " + matches.length + " files." ); + + return matches; +} function buildCDNPackage( callback ) { console.log( "Building CDN package" ); @@ -34,7 +65,7 @@ Release.define({ "}\n\nReleased on " + monthNames[ now.getMonth() ] + " " + now.getDate() + ", " + now.getFullYear() + "\n\n"; }, generateArtifacts: function( fn ) { - var manifestFiles; + var files; function copyCdnFiles() { var zipFile = shell.ls( "../jquery*-cdn.zip" )[ 0 ], tmpFolder = "../tmp-zip-output", @@ -50,11 +81,11 @@ Release.define({ shell.mkdir( "-p", "dist/cdn" ); shell.cp( tmpFolder + "/jquery-ui*.js", "dist/cdn" ); shell.cp( "-r", tmpFolder + "/themes", "dist/cdn" ); - fn( manifestFiles ); + fn( files ); } Release.exec( "grunt manifest" ); - manifestFiles = shell.ls( "*.jquery.json" ); + files = shell.ls( "*.jquery.json" ).concat( replaceAtVersion() ); buildCDNPackage( copyCdnFiles ); } });