Merge pull request #146 from hybridgroup/notify-of-missing-modules
Add friendlier errors when no adaptor/driver found
This commit is contained in:
commit
4c647db88f
21
lib/robot.js
21
lib/robot.js
|
@ -293,7 +293,11 @@ namespace("Cylon", function() {
|
|||
// Returns the registered module name
|
||||
Robot.prototype.registerAdaptor = function(moduleName, adaptorName) {
|
||||
if (this.adaptors[adaptorName] == null) {
|
||||
return this.adaptors[adaptorName] = require(moduleName);
|
||||
try {
|
||||
return this.adaptors[adaptorName] = require(moduleName);
|
||||
} catch (e) {
|
||||
this._missingModuleError(moduleName);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -347,7 +351,11 @@ namespace("Cylon", function() {
|
|||
// Returns the registered module nam//
|
||||
Robot.prototype.registerDriver = function(moduleName, driverName) {
|
||||
if (this.drivers[driverName] == null) {
|
||||
return this.drivers[driverName] = require(moduleName);
|
||||
try {
|
||||
return this.drivers[driverName] = require(moduleName);
|
||||
} catch (e) {
|
||||
this._missingModuleError(moduleName);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -358,6 +366,15 @@ namespace("Cylon", function() {
|
|||
return "[Robot name='" + this.name + "']";
|
||||
};
|
||||
|
||||
Robot.prototype._missingModuleError = function(module) {
|
||||
var string = "Cannot find the '" + module + "' module. ";
|
||||
string += "Please install it with 'npm install " + module + "' and try again.";
|
||||
|
||||
console.log(string);
|
||||
|
||||
process.emit('SIGINT');
|
||||
};
|
||||
|
||||
return Robot;
|
||||
|
||||
})(EventEmitter);
|
||||
|
|
Loading…
Reference in New Issue