nikki
Version:
A browser-based IDE written in NodeJS. For Real.
40 lines (36 loc) • 1.04 kB
JavaScript
/**
* Configuration module.
*
* We will load nikki's default configuration
* and merge it with the user-defined configuration.
*
* @type {*}
*/
var _ = require('lodash');
var fs = require('fs');
var yaml = require('js-yaml');
var reconfig = require('reconfig');
var p = require('path');
var debug = require('debug')('nikki:config');
var utils = require('./utils');
var configuration = {
paths: [
p.join(__dirname, '..'),
p.join(utils.getUserHomeDir()),
p.join(process.cwd())
]
};
var config = new reconfig(configuration);
config.reload = function() {
_.forEach(config.get('paths'), function(path){
try {
var filePath = p.join(path, '.nikki.yml');
config.config = _.merge(config.config, yaml.safeLoad(fs.readFileSync(filePath, 'utf8')));
debug('Loaded config in ', filePath)
} catch (err) {
debug('Warning while loading the config ', err)
};
});
};
config.reload();
module.exports = config;