Skip to content

Commit 5c76ada

Browse files
committed
MAGETWO-55345: Grunt uses actual theme's list
1 parent 3ef1e28 commit 5c76ada

File tree

8 files changed

+70
-6
lines changed

8 files changed

+70
-6
lines changed

Gruntfile.js.sample

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55

66
// For performance use one level down: 'name/{,*/}*.js'
77
// If you want to recursively match all subfolders, use: 'name/**/*.js'
8+
89
module.exports = function (grunt) {
910
'use strict';
1011

1112
var _ = require('underscore'),
1213
path = require('path'),
13-
themes = require('./dev/tools/grunt/configs/themes'),
14+
themes = require('./dev/tools/grunt/tools/files-router').getThemes(),
1415
configDir = './dev/tools/grunt/configs',
1516
tasks = grunt.file.expand('./dev/tools/grunt/tasks/*');
1617

dev/tools/grunt/configs/clean.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
'use strict';
77

8-
var themes = require('./themes'),
8+
var themes = require('../tools/files-router').getThemes(),
99
_ = require('underscore');
1010

1111
var themeOptions = {};

dev/tools/grunt/configs/combo.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
'use strict';
77

8-
var theme = require('./themes'),
8+
var theme = require('../tools/files-router').getThemes(),
99
path = require('./path');
1010

1111
/**

dev/tools/grunt/configs/exec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
'use strict';
77

88
var combo = require('./combo'),
9-
themes = require('./themes'),
9+
themes = require('../tools/files-router').getThemes(),
1010
_ = require('underscore');
1111

1212
var themeOptions = {};

dev/tools/grunt/configs/less.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
'use strict';
77

88
var combo = require('./combo'),
9-
themes = require('./themes'),
9+
themes = require('../tools/files-router').getThemes(),
1010
_ = require('underscore');
1111

1212
var themeOptions = {};

dev/tools/grunt/configs/watch.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
'use strict';
77

88
var combo = require('./combo'),
9-
themes = require('./themes'),
9+
themes = require('../tools/files-router').getThemes(),
1010
_ = require('underscore');
1111

1212
var themeOptions = {};

dev/tools/grunt/tools/files-router.js

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/**
2+
* Copyright © 2016 Magento. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
'use strict';
7+
8+
module.exports = {
9+
defaultConfig: {
10+
'themes': 'dev/tools/grunt/configs/themes'
11+
},
12+
13+
/**
14+
* Immediately invoked function.
15+
* Loads user config file.
16+
*/
17+
userConfig: (function () {
18+
try {
19+
return require(process.cwd() + '/grunt-config');
20+
} catch (error) {
21+
return null;
22+
}
23+
})(),
24+
25+
/**
26+
* Loads "themes" file.
27+
* Load priority:
28+
* From user config;
29+
* From default config with ".loc" suffix ;
30+
* From default config;
31+
*
32+
* @returns themes file or error
33+
*/
34+
getThemes: function () {
35+
if (this.userConfig && this.userConfig.themes) {
36+
return require(this.getFullPath(this.userConfig.themes));
37+
} else {
38+
try {
39+
return require(this.getFullPath(this.defaultConfig.themes + '.loc'));
40+
} catch (error) {
41+
try {
42+
return require(this.getFullPath(this.defaultConfig.themes));
43+
} catch (error) {
44+
throw error;
45+
}
46+
}
47+
}
48+
},
49+
50+
/**
51+
* Generates full path to file.
52+
*
53+
* @param {String} path - relative path to file.
54+
*
55+
* @returns {String} Full path to file
56+
*/
57+
getFullPath: function (path) {
58+
return process.cwd() + '/' + path;
59+
}
60+
};

grunt-config.json.sample

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"themes": "dev/tools/grunt/configs/local-themes"
3+
}

0 commit comments

Comments
 (0)