aboutsummaryrefslogtreecommitdiff
path: root/semantic/tasks/config/user.js
diff options
context:
space:
mode:
Diffstat (limited to 'semantic/tasks/config/user.js')
-rw-r--r--semantic/tasks/config/user.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/semantic/tasks/config/user.js b/semantic/tasks/config/user.js
new file mode 100644
index 0000000..ca0c93c
--- /dev/null
+++ b/semantic/tasks/config/user.js
@@ -0,0 +1,58 @@
+/*******************************
+ 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
+ gulpConfig = {},
+
+ // semantic.json settings
+ userConfig
+
+;
+
+
+/*******************************
+ User Config
+*******************************/
+
+try {
+ // looks for config file across all parent directories
+ userConfig = requireDotFile('semantic.json', process.cwd());
+}
+catch(error) {
+ if(error.code === 'MODULE_NOT_FOUND') {
+ console.error('No semantic.json config found');
+ }
+}
+
+// extend user config with defaults
+gulpConfig = (!userConfig)
+ ? extend(true, {}, defaults)
+ : extend(false, {}, defaults, userConfig)
+;
+
+/*******************************
+ Add Derived Values
+*******************************/
+
+// adds calculated values
+config.addDerivedValues(gulpConfig);
+
+
+/*******************************
+ Export
+*******************************/
+
+module.exports = gulpConfig;
+