CartoDB/cartodb20

View on GitHub
lib/build/tasks/copy.js

Summary

Maintainability
C
7 hrs
Test Coverage
/**
 *  Copy task config
 */

exports.task = function (grunt) {
  return {
    vendor: {
      expand: true,
      cwd: 'vendor/assets/stylesheets/',
      src: ['**/*.css'],
      dest: 'tmp/sass/vendor/',
      rename: function (dest, src) {
        return dest + src.replace(/\.css$/, '.scss');
      },
      options: {
        // Change all routes from img to asset version path
        process: function (content, srcpath) {
          // return content.replace(/\.\.\/img/gi,"/assets/<%= pkg.version %>/images/themes");
          var path = grunt.template.process('<%= env.http_path_prefix %>/assets/editor/<%= editor_assets_version %>/images/themes');
          return content.replace(/\.\.\/img/gi, path);
        }
      }
    },

    app: {
      files: [{
        expand: true,
        dot: true,
        cwd: 'node_modules/cartoassets/src/fonts',
        src: '**/*.*',
        dest: '<%= editor_assets_dir %>/fonts/'
      }, {
        expand: true,
        cwd: 'node_modules/cartoassets/src/scss/',
        src: '**/*.scss',
        dest: 'tmp/sass/cartoassets/'
      }, {
        expand: true,
        cwd: 'node_modules/bootstrap-colorpicker/dist/css/',
        src: 'bootstrap-colorpicker.css',
        dest: 'tmp/sass/colorpicker/bootstrap-colorpicker/',
        rename: function (dest, src) {
          return dest + src.replace(/\.css$/, '.scss');
        }
      }, {
        expand: true,
        cwd: 'app/assets/stylesheets/deep-insights/themes/scss',
        src: '**/*.scss',
        dest: 'tmp/sass/deep-insights/'
      }, {
        expand: true,
        cwd: 'node_modules/internal-carto.js/themes/scss',
        src: '**/*.scss',
        dest: 'tmp/sass/cartodbjs_v4/'
      }, {
        expand: true,
        cwd: 'lib/assets/javascripts/cdb/themes/css/',
        src: ['cartodb.css'],
        dest: '<%= editor_assets_dir %>/stylesheets/tmp/embeds/',
        rename: function (dest, src) {
          return dest + src.replace(/\.css$/, '.scss');
        }
      }, {
        // Client stylesheets
        expand: true,
        cwd: 'app/assets/client/stylesheets/',
        src: ['**/*.scss'],
        dest: 'tmp/sass/client/',
        rename: function (dest, src) {
          return dest + src.replace(/\.css.scss$/, '.scss');
        }
      }, {
        expand: true,
        cwd: 'app/assets/images/',
        src: ['**/*'],
        dest: '<%= editor_assets_dir %>/images/'
      }, {
        // Some images should be placed in a unversioned folder
        expand: true,
        cwd: 'app/assets/images/',
        src: ['avatars/*.png', 'alphamarker.png', 'google-maps-basemap-icons/*.jpg', 'carto.png'],
        dest: '<%= root_assets_dir %>/unversioned/images/'
      }, {
        // CARTO.js images
        expand: true,
        cwd: 'lib/assets/javascripts/cdb/themes/img/',
        src: ['**/*'],
        dest: '<%= editor_assets_dir %>/images/themes/'
      }, {
        // Fonts
        expand: true,
        cwd: 'app/assets/fonts/',
        src: ['*.{svg,ttf,eot,woff,woff2}'],
        dest: '<%= editor_assets_dir %>/fonts/'
      }, {
        // Client fonts
        expand: true,
        cwd: 'app/assets/client/fonts/',
        src: ['*.{svg,ttf,eot,woff,woff2}'],
        dest: '<%= editor_assets_dir %>/fonts/'
      }, {
        // Flash
        expand: true,
        cwd: 'app/assets/flash/',
        src: ['**/*'],
        dest: '<%= editor_assets_dir %>/flash/'
      }, {
        // Favicons
        expand: true,
        cwd: 'public/favicons/',
        src: ['**/*'],
        dest: '<%= editor_assets_dir %>/favicons/'
      }, {
        // Client favicons
        expand: true,
        cwd: 'app/assets/client/favicons/',
        src: ['**/*'],
        dest: '<%= editor_assets_dir %>/favicons/'
      }]
    },

    css_cartodb: {
      files: [{
        // TODO: remove editor
        expand: true,
        cwd: 'app/assets/stylesheets',
        src: [
          '**/*.scss',
          '!editor-3/**/*.scss',
          '!new_dashboard/**/*.scss'
        ],
        dest: 'tmp/sass/editor/',
        rename: function (dest, src) {
          return dest + src.replace(/\.css.scss$/, '.scss');
        }
      }]
    },

    css_builder: {
      files: [{
        // TODO: remove editor
        expand: true,
        cwd: 'app/assets/stylesheets/editor-3/',
        src: ['**/*.scss'],
        dest: 'tmp/sass/editor-3/'
      }]
    },

    css_dashboard: {
      files: [{
        // TODO: remove editor
        expand: true,
        cwd: 'app/assets/stylesheets/new_dashboard/',
        src: ['**/*.scss'],
        dest: 'tmp/sass/new_dashboard/'
      }]
    },

    css_vendor_builder: {
      files: [{
        expand: true,
        cwd: 'node_modules/cartoassets/src/scss/',
        src: '**/*.scss',
        dest: 'tmp/sass/cartoassets/'
      }, {
        expand: true,
        cwd: 'app/assets/stylesheets/deep-insights/themes/scss',
        src: '**/*.scss',
        dest: 'tmp/sass/deep-insights/'
      }, {
        expand: true,
        cwd: 'node_modules/internal-carto.js/themes/scss',
        src: '**/*.scss',
        dest: 'tmp/sass/cartodbjs_v4/'
      }]
    },

    js: {
      files: [{
        expand: true,
        cwd: '<%= editor_assets_dir %>/javascripts/',
        src: ['**/*.js'],
        dest: '<%= editor_assets_dir %>/javascripts/',
        rename: function (dest, src) {
          return dest + src.replace(/\.js$/, '.uncompressed.js');
        }
      }]
    }
  };
};