12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /*!
- * Bootstrap Grunt task for generating raw-files.min.js for the Customizer
- * http://getbootstrap.com
- * Copyright 2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
- /* global btoa: true */
- '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.');
- };
|