You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.2 KiB
57 lines
1.2 KiB
/*******************************
|
|
Set-up
|
|
*******************************/
|
|
|
|
var
|
|
// npm dependencies
|
|
extend = require('extend'),
|
|
fs = require('fs'),
|
|
path = require('path'),
|
|
requireDotFile = require('require-dot-file'),
|
|
|
|
// semantic.json defaults
|
|
defaults = require('./defaults'),
|
|
config = require('./project/config'),
|
|
|
|
// final config object
|
|
userConfig
|
|
;
|
|
|
|
|
|
/*******************************
|
|
User Config
|
|
*******************************/
|
|
|
|
try {
|
|
// looks for config file across all parent directories
|
|
userConfig = requireDotFile('semantic.json');
|
|
}
|
|
catch(error) {
|
|
if(error.code === 'MODULE_NOT_FOUND') {
|
|
console.error('No semantic.json config found');
|
|
}
|
|
}
|
|
|
|
if(!userConfig) {
|
|
// No semantic.json file use tasks/config/defaults.js
|
|
userConfig = defaults;
|
|
}
|
|
else {
|
|
// extend defaults using shallow copy
|
|
userConfig = extend(false, {}, defaults, config);
|
|
}
|
|
|
|
|
|
/*******************************
|
|
Add Derived Values
|
|
*******************************/
|
|
|
|
// adds additional derived values to config
|
|
userConfig = config.addDerivedValues(userConfig);
|
|
|
|
|
|
/*******************************
|
|
Export
|
|
*******************************/
|
|
|
|
module.exports = userConfig;
|