UNPKG

gear-cli

Version:
52 lines (35 loc) 1.29 kB
var _ = require('underscore'); var parse = require('./lib/parseArgs'); var sprintf = require('sprintf-js').sprintf; module.exports = function(prototype) { prototype._parseArgs = function _parse (args) { return parse (args, this.gearbox, this.debug, this.commands); }; prototype.run = function run (args, callback) { var parsed = this._parseArgs(args); this.gearbox.getGear(parsed.gear.name, {}, function(err, gear) { if (err) { callback(err); } else { var methodName = parsed.gear.method; if ( _.isFunction(gear[methodName])) { var f = gear[methodName]; f = _.bind(f, gear); f (parsed.args, callback); } else { callback ( { name: 'badCliFunction', message: sprintf("Cannot run command (cannot find '%s' function on '%s' gear)", methodName, parsed.gear.name) } ); } } }); }; };