summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Bootstrap/resources/bootstrap/grunt/bs-raw-files-generator.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/Bootstrap/resources/bootstrap/grunt/bs-raw-files-generator.js')
-rw-r--r--www/wiki/extensions/Bootstrap/resources/bootstrap/grunt/bs-raw-files-generator.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/www/wiki/extensions/Bootstrap/resources/bootstrap/grunt/bs-raw-files-generator.js b/www/wiki/extensions/Bootstrap/resources/bootstrap/grunt/bs-raw-files-generator.js
new file mode 100644
index 00000000..39224e4e
--- /dev/null
+++ b/www/wiki/extensions/Bootstrap/resources/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.');
+};