@@ -353,7 +353,7 @@ module.exports = function(grunt) {
353353 grunt . config ( 'concat.dist_tpls.src' , grunt . config ( 'concat.dist_tpls.src' )
354354 . concat ( srcFiles ) . concat ( tpljsFiles ) ) ;
355355
356- grunt . task . run ( [ 'concat' , 'uglify' , 'makeModuleMappingFile' , 'makeRawFilesJs' ] ) ;
356+ grunt . task . run ( [ 'concat' , 'uglify' , 'makeModuleMappingFile' , 'makeRawFilesJs' , 'makeVersionsMappingFile' ] ) ;
357357 } ) ;
358358
359359 grunt . registerTask ( 'test' , 'Run tests on singleRun karma server' , function ( ) {
@@ -392,6 +392,33 @@ module.exports = function(grunt) {
392392 grunt . config ( 'meta.banner' ) , grunt . config ( 'meta.cssFileBanner' ) ) ;
393393 } ) ;
394394
395+ grunt . registerTask ( 'makeVersionsMappingFile' , function ( ) {
396+ var done = this . async ( ) ;
397+
398+ var exec = require ( 'child_process' ) . exec ;
399+
400+ var versionsMappingFile = 'dist/versions-mapping.json' ;
401+
402+ exec ( 'git tag --sort -version:refname' , function ( error , stdout , stderr ) {
403+ // Let's remove the oldest 14 versions.
404+ var versions = stdout . split ( '\n' ) . slice ( 0 , - 14 ) ;
405+ var jsContent = versions . map ( function ( version ) {
406+ return {
407+ version : version ,
408+ url : '/bootstrap/versioned-docs/' + version
409+ } ;
410+ } ) ;
411+ jsContent [ 0 ] = {
412+ version : 'Current' ,
413+ url : '/bootstrap'
414+ } ;
415+ grunt . file . write ( versionsMappingFile , JSON . stringify ( jsContent ) ) ;
416+ grunt . log . writeln ( 'File ' + versionsMappingFile . cyan + ' created.' ) ;
417+ done ( ) ;
418+ } ) ;
419+
420+ } ) ;
421+
395422 /**
396423 * Logic from AngularJS
397424 * https://github.com/angular/angular.js/blob/36831eccd1da37c089f2141a2c073a6db69f3e1d/lib/grunt/utils.js#L121-L145
0 commit comments