Blame view

frontend/web/css/node_modules/bootstrap/grunt/bs-raw-files-generator.js 1.36 KB
3da83322   Administrator   21.03.16 Versrka
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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.');

  };