scratch
/bower_components/bootstrap/grunt/bs-raw-files-generator.js |
@@ -0,0 +1,44 @@ |
/*! |
* Bootstrap Grunt task for generating raw-files.min.js for the Customizer |
* http://getbootstrap.com |
* Copyright 2014-2015 Twitter, Inc. |
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) |
*/ |
|
'use strict'; |
|
var fs = require('fs'); |
var btoa = require('btoa'); |
var glob = require('glob'); |
|
function getFiles(type) { |
var files = {}; |
var recursive = type === 'less'; |
var globExpr = recursive ? '/**/*' : '/*'; |
glob.sync(type + globExpr) |
.filter(function (path) { |
return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path); |
}) |
.forEach(function (fullPath) { |
var relativePath = fullPath.replace(/^[^/]+\//, ''); |
files[relativePath] = type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8'); |
}); |
return 'var __' + type + ' = ' + JSON.stringify(files) + '\n'; |
} |
|
module.exports = function generateRawFilesJs(grunt, banner) { |
if (!banner) { |
banner = ''; |
} |
var dirs = ['js', 'less', 'fonts']; |
var files = banner + dirs.map(getFiles).reduce(function (combined, file) { |
return combined + file; |
}, ''); |
var rawFilesJs = 'docs/assets/js/raw-files.min.js'; |
try { |
fs.writeFileSync(rawFilesJs, files); |
} catch (err) { |
grunt.fail.warn(err); |
} |
grunt.log.writeln('File ' + rawFilesJs.cyan + ' created.'); |
}; |