1 | /*******************************
|
2 | Set-up
|
3 | *******************************/
|
4 |
|
5 | var
|
6 | // npm dependencies
|
7 | extend = require('extend'),
|
8 | fs = require('fs'),
|
9 | path = require('path'),
|
10 | requireDotFile = require('require-dot-file'),
|
11 |
|
12 | // semantic.json defaults
|
13 | defaults = require('./defaults'),
|
14 | config = require('./project/config'),
|
15 |
|
16 | // Final config object
|
17 | gulpConfig = {},
|
18 |
|
19 | // semantic.json settings
|
20 | userConfig
|
21 |
|
22 | ;
|
23 |
|
24 |
|
25 | /*******************************
|
26 | User Config
|
27 | *******************************/
|
28 |
|
29 | try {
|
30 | // looks for config file across all parent directories
|
31 | userConfig = requireDotFile('semantic.json');
|
32 | }
|
33 | catch(error) {
|
34 | if(error.code === 'MODULE_NOT_FOUND') {
|
35 | console.error('No semantic.json config found');
|
36 | }
|
37 | }
|
38 |
|
39 | // extend user config with defaults
|
40 | gulpConfig = (!userConfig)
|
41 | ? extend(true, {}, defaults)
|
42 | : extend(false, {}, defaults, userConfig)
|
43 | ;
|
44 |
|
45 | /*******************************
|
46 | Add Derived Values
|
47 | *******************************/
|
48 |
|
49 | // adds calculated values
|
50 | config.addDerivedValues(gulpConfig);
|
51 |
|
52 |
|
53 | /*******************************
|
54 | Export
|
55 | *******************************/
|
56 |
|
57 | module.exports = gulpConfig;
|
58 |
|