masson
Version:
Module execution engine for cluster deployments.
64 lines (57 loc) • 1.6 kB
JavaScript
// Generated by CoffeeScript 1.7.1
var config, configs, e, exists, file, files, fs, k, location, merge, params, path, stat, v, _i, _j, _len, _len1, _ref,
__slice = [].slice;
path = require('path');
fs = require('fs');
merge = require('./misc').merge;
params = require('./params');
params = params.parse();
try {
configs = [];
_ref = params.config;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
config = _ref[_i];
location = "" + (path.resolve(process.cwd(), config));
exists = fs.existsSync(location);
if (exists) {
stat = fs.statSync(location);
}
if (exists && stat.isDirectory()) {
files = fs.readdirSync(location);
for (_j = 0, _len1 = files.length; _j < _len1; _j++) {
file = files[_j];
if (file.indexOf('.') === 0) {
continue;
}
file = "" + (path.resolve(location, file));
stat = fs.statSync(file);
if (stat.isDirectory()) {
continue;
}
configs.push(require(file));
}
} else {
configs.push(require(location));
}
}
config = merge.apply(null, [{}].concat(__slice.call(configs)));
config.servers = (function() {
var _ref1, _results;
_ref1 = config.servers;
_results = [];
for (k in _ref1) {
v = _ref1[k];
if (v.host == null) {
v.host = k;
}
_results.push(v);
}
return _results;
})();
module.exports = config;
} catch (_error) {
e = _error;
process.stderr.write("Fail to load configuration file: " + params.config + "\n");
console.log(e.stack);
process.exit();
}