34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
|
/*
|
||
|
Copyright (c) 2012, Yahoo! Inc. All rights reserved.
|
||
|
Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
|
||
|
*/
|
||
|
|
||
|
var Factory = require('../util/factory'),
|
||
|
factory = new Factory('command', __dirname, true);
|
||
|
|
||
|
function Command() {}
|
||
|
// add register, create, mix, loadAll, getCommandList, resolveCommandName to the Command object
|
||
|
factory.bindClassMethods(Command);
|
||
|
|
||
|
Command.prototype = {
|
||
|
toolName: function () {
|
||
|
return require('../util/meta').NAME;
|
||
|
},
|
||
|
|
||
|
type: function () {
|
||
|
return this.constructor.TYPE;
|
||
|
},
|
||
|
synopsis: /* istanbul ignore next: base method */ function () {
|
||
|
return "the developer has not written a one-line summary of the " + this.type() + " command";
|
||
|
},
|
||
|
usage: /* istanbul ignore next: base method */ function () {
|
||
|
console.error("the developer has not provided a usage for the " + this.type() + " command");
|
||
|
},
|
||
|
run: /* istanbul ignore next: abstract method */ function (args, callback) {
|
||
|
return callback(new Error("run: must be overridden for the " + this.type() + " command"));
|
||
|
}
|
||
|
};
|
||
|
|
||
|
module.exports = Command;
|
||
|
|