111 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /**
 | |
|  * Copyright © Magento, Inc. All rights reserved.
 | |
|  * See COPYING.txt for license details.
 | |
|  */
 | |
| 
 | |
| // For performance use one level down: 'name/{,*/}*.js'
 | |
| // If you want to recursively match all subfolders, use: 'name/**/*.js'
 | |
| 
 | |
| module.exports = function (grunt) {
 | |
|     'use strict';
 | |
| 
 | |
|     var _ = require('underscore'),
 | |
|         path = require('path'),
 | |
|         filesRouter = require('./dev/tools/grunt/tools/files-router'),
 | |
|         configDir = './dev/tools/grunt/configs',
 | |
|         tasks = grunt.file.expand('./dev/tools/grunt/tasks/*'),
 | |
|         themes;
 | |
| 
 | |
|     filesRouter.set('themes', 'dev/tools/grunt/configs/themes');
 | |
|     themes = filesRouter.get('themes');
 | |
| 
 | |
|     tasks = _.map(tasks, function (task) {
 | |
|         return task.replace('.js', '');
 | |
|     });
 | |
|     tasks.push('time-grunt');
 | |
|     tasks.forEach(function (task) {
 | |
|         require(task)(grunt);
 | |
|     });
 | |
| 
 | |
|     require('load-grunt-config')(grunt, {
 | |
|         configPath: path.join(__dirname, configDir),
 | |
|         init: true,
 | |
|         jitGrunt: {
 | |
|             staticMappings: {
 | |
|                 usebanner: 'grunt-banner'
 | |
|             }
 | |
|         }
 | |
|     });
 | |
| 
 | |
|     _.each({
 | |
|         /**
 | |
|          * Assembling tasks.
 | |
|          * ToDo: define default tasks.
 | |
|          */
 | |
|         default: function () {
 | |
|             grunt.log.subhead('I\'m default task and at the moment I\'m empty, sorry :/');
 | |
|         },
 | |
| 
 | |
|         /**
 | |
|          * Production preparation task.
 | |
|          */
 | |
|         prod: function (component) {
 | |
|             var tasks = [
 | |
|                 'less',
 | |
|                 'cssmin',
 | |
|                 'usebanner'
 | |
|             ].map(function (task) {
 | |
|                 return task + ':' + component;
 | |
|             });
 | |
| 
 | |
|             if (typeof component === 'undefined') {
 | |
|                 grunt.log.subhead('Tip: Please make sure that u specify prod subtask. By default prod task do nothing');
 | |
|             } else {
 | |
|                 grunt.task.run(tasks);
 | |
|             }
 | |
|         },
 | |
| 
 | |
|         /**
 | |
|          * Refresh themes.
 | |
|          */
 | |
|         refresh: function () {
 | |
|             var tasks = [
 | |
|                 'clean',
 | |
|                 'exec:all'
 | |
|             ];
 | |
|             _.each(themes, function (theme, name) {
 | |
|                 tasks.push('less:' + name);
 | |
|             });
 | |
|             grunt.task.run(tasks);
 | |
|         },
 | |
| 
 | |
|         /**
 | |
|          * Documentation
 | |
|          */
 | |
|         documentation: [
 | |
|             'replace:documentation',
 | |
|             'less:documentation',
 | |
|             'styledocco:documentation',
 | |
|             'usebanner:documentationCss',
 | |
|             'usebanner:documentationLess',
 | |
|             'usebanner:documentationHtml',
 | |
|             'clean:var',
 | |
|             'clean:pub'
 | |
|         ],
 | |
| 
 | |
|         'legacy-build': [
 | |
|             'mage-minify:legacy'
 | |
|         ],
 | |
| 
 | |
|         spec: function (theme) {
 | |
|             var runner = require('./dev/tests/js/jasmine/spec_runner');
 | |
| 
 | |
|             runner.init(grunt, { theme: theme });
 | |
| 
 | |
|             grunt.task.run(runner.getTasks());
 | |
|         }
 | |
|     }, function (task, name) {
 | |
|         grunt.registerTask(name, task);
 | |
|     });
 | |
| };
 |