Merge pull request #146 from hybridgroup/notify-of-missing-modules

Add friendlier errors when no adaptor/driver found
This commit is contained in:
Ron Evans 2014-03-26 14:35:01 -07:00
commit 4c647db88f
1 changed files with 19 additions and 2 deletions

View File

@ -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);