Nicer handling of config file errors at startup
This commit is contained in:
parent
ce15511cf1
commit
20bbbd2f59
13
core/bbs.js
13
core/bbs.js
|
@ -54,6 +54,8 @@ function printVersionAndExit() {
|
|||
}
|
||||
|
||||
function main() {
|
||||
let errorDisplayed = false;
|
||||
|
||||
async.waterfall(
|
||||
[
|
||||
function processArgs(callback) {
|
||||
|
@ -87,7 +89,14 @@ function main() {
|
|||
configPathSupplied = null; // make non-fatal; we'll go with defaults
|
||||
}
|
||||
} else {
|
||||
console.error(err.message);
|
||||
errorDisplayed = true;
|
||||
console.error(`Configuration error: ${err.message}`); // eslint-disable-line no-console
|
||||
if (err.hint) {
|
||||
console.error(`Hint: ${err.hint}`);
|
||||
}
|
||||
if (err.configPath) {
|
||||
console.error(`Note: ${err.configPath}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
return callback(err);
|
||||
|
@ -114,7 +123,7 @@ function main() {
|
|||
});
|
||||
}
|
||||
|
||||
if(err) {
|
||||
if(err && !errorDisplayed) {
|
||||
console.error('Error initializing: ' + util.inspect(err));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,7 +48,6 @@ exports.Config = class Config extends ConfigLoader {
|
|||
systemConfigInstance = new Config(options);
|
||||
systemConfigInstance.init(baseConfigPath, err => {
|
||||
if (err) {
|
||||
console.stdout(`Configuration ${baseConfigPath} error: ${err.message}`); // eslint-disable-line no-console
|
||||
return cb(err);
|
||||
}
|
||||
|
||||
|
@ -56,7 +55,7 @@ exports.Config = class Config extends ConfigLoader {
|
|||
// instance we just created
|
||||
exports.get = systemConfigInstance.get.bind(systemConfigInstance);
|
||||
|
||||
return cb(err);
|
||||
return cb(null);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -180,6 +180,9 @@ module.exports = class ConfigLoader {
|
|||
};
|
||||
|
||||
ConfigCache.getConfigWithOptions(options, (err, config) => {
|
||||
if (err) {
|
||||
err.configPath = options.filePath;
|
||||
}
|
||||
return cb(err, config);
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue