* New user / apply crashes if no message areas defined #19
This commit is contained in:
parent
839ab8fc91
commit
3ad43c07e8
12
core/bbs.js
12
core/bbs.js
|
@ -47,9 +47,18 @@ function bbsMain() {
|
||||||
// If the user supplied a path and we can't read/parse it
|
// If the user supplied a path and we can't read/parse it
|
||||||
// then it's a fatal error
|
// then it's a fatal error
|
||||||
//
|
//
|
||||||
|
if(err) {
|
||||||
|
if('ENOENT' === err.code) {
|
||||||
|
console.error('Configuration file does not exist: ' + configPath);
|
||||||
|
} else {
|
||||||
|
console.error(err.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
callback(err);
|
||||||
|
/*
|
||||||
if(configPathSupplied && err) {
|
if(configPathSupplied && err) {
|
||||||
if('ENOENT' === err.code) {
|
if('ENOENT' === err.code) {
|
||||||
console.error('Configuration file does not existing: ' + configPath);
|
console.error('Configuration file does not exist: ' + configPath);
|
||||||
} else {
|
} else {
|
||||||
console.error('Failed parsing configuration: ' + configPath);
|
console.error('Failed parsing configuration: ' + configPath);
|
||||||
}
|
}
|
||||||
|
@ -57,6 +66,7 @@ function bbsMain() {
|
||||||
} else {
|
} else {
|
||||||
callback(null);
|
callback(null);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
function initSystem(callback) {
|
function initSystem(callback) {
|
||||||
|
|
|
@ -16,19 +16,22 @@ function init(configPath, cb) {
|
||||||
async.waterfall(
|
async.waterfall(
|
||||||
[
|
[
|
||||||
function loadUserConfig(callback) {
|
function loadUserConfig(callback) {
|
||||||
|
if(_.isString(configPath)) {
|
||||||
fs.readFile(configPath, { encoding : 'utf8' }, function configData(err, data) {
|
fs.readFile(configPath, { encoding : 'utf8' }, function configData(err, data) {
|
||||||
if(err) {
|
if(err) {
|
||||||
callback(null, { } );
|
callback(err);
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
var configJson = hjson.parse(data);
|
var configJson = hjson.parse(data);
|
||||||
callback(null, configJson);
|
callback(null, configJson);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
callback(e);
|
callback(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
} else {
|
||||||
|
callback(null, { } );
|
||||||
|
}
|
||||||
},
|
},
|
||||||
function mergeWithDefaultConfig(configJson, callback) {
|
function mergeWithDefaultConfig(configJson, callback) {
|
||||||
var mergedConfig = _.merge(getDefaultConfig(), configJson, function mergeCustomizer(conf1, conf2) {
|
var mergedConfig = _.merge(getDefaultConfig(), configJson, function mergeCustomizer(conf1, conf2) {
|
||||||
|
@ -39,6 +42,23 @@ function init(configPath, cb) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
callback(null, mergedConfig);
|
||||||
|
},
|
||||||
|
function validate(mergedConfig, callback) {
|
||||||
|
//
|
||||||
|
// Various sections must now exist in config
|
||||||
|
//
|
||||||
|
if(!_.has(mergedConfig, 'messages.areas.') ||
|
||||||
|
!_.isArray(mergedConfig.messages.areas) ||
|
||||||
|
0 == mergedConfig.messages.areas.length ||
|
||||||
|
!_.isString(mergedConfig.messages.areas[0].name))
|
||||||
|
{
|
||||||
|
var msgAreasErr = new Error('Please create at least one message area');
|
||||||
|
msgAreasErr.code = 'EBADCONFIG';
|
||||||
|
callback(msgAreasErr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
callback(null, mergedConfig);
|
callback(null, mergedConfig);
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
Loading…
Reference in New Issue