| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | /*! * 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.');};
 |