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() {
|
function main() {
|
||||||
|
let errorDisplayed = false;
|
||||||
|
|
||||||
async.waterfall(
|
async.waterfall(
|
||||||
[
|
[
|
||||||
function processArgs(callback) {
|
function processArgs(callback) {
|
||||||
|
@ -87,7 +89,14 @@ function main() {
|
||||||
configPathSupplied = null; // make non-fatal; we'll go with defaults
|
configPathSupplied = null; // make non-fatal; we'll go with defaults
|
||||||
}
|
}
|
||||||
} else {
|
} 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);
|
return callback(err);
|
||||||
|
@ -114,7 +123,7 @@ function main() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(err) {
|
if(err && !errorDisplayed) {
|
||||||
console.error('Error initializing: ' + util.inspect(err));
|
console.error('Error initializing: ' + util.inspect(err));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,6 @@ exports.Config = class Config extends ConfigLoader {
|
||||||
systemConfigInstance = new Config(options);
|
systemConfigInstance = new Config(options);
|
||||||
systemConfigInstance.init(baseConfigPath, err => {
|
systemConfigInstance.init(baseConfigPath, err => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.stdout(`Configuration ${baseConfigPath} error: ${err.message}`); // eslint-disable-line no-console
|
|
||||||
return cb(err);
|
return cb(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +55,7 @@ exports.Config = class Config extends ConfigLoader {
|
||||||
// instance we just created
|
// instance we just created
|
||||||
exports.get = systemConfigInstance.get.bind(systemConfigInstance);
|
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) => {
|
ConfigCache.getConfigWithOptions(options, (err, config) => {
|
||||||
|
if (err) {
|
||||||
|
err.configPath = options.filePath;
|
||||||
|
}
|
||||||
return cb(err, config);
|
return cb(err, config);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue