"use strict"; require("typings-global"); var plugins = require("./smartcli.plugins"); var Smartcli = (function () { function Smartcli() { this.argv = plugins.argv; this.questionsDone = plugins.q.defer(); this.parseStarted = plugins.q.defer(); } Smartcli.prototype.addAlias = function (keyArg, aliasArg) { this.argv = this.argv.alias(keyArg, aliasArg); }; ; Smartcli.prototype.addCommand = function (definitionArg) { var _this = this; var done = plugins.q.defer(); this.parseStarted.promise .then(function () { if (_this.argv._.indexOf(definitionArg.commandName) == 0) { done.resolve(_this.argv); } else { return done.reject(); } }); return done.promsise; }; ; Smartcli.prototype.addQuestion = function (definitionArg) { }; ; Smartcli.prototype.addVersion = function (versionArg) { var _this = this; this.version = versionArg; this.addAlias("v", "version"); this.parseStarted.promise .then(function () { if (_this.argv.v) { console.log(_this.version); } }); }; Smartcli.prototype.standardTask = function () { var _this = this; var done = plugins.q.defer(); this.parseStarted.promise .then(function () { if (_this.argv._.length == 0 && !_this.argv.v) { done.resolve(); } else { done.reject(); } ; }); return done.promise; }; Smartcli.prototype.startParse = function () { this.argv = this.argv.argv; this.parseStarted.resolve(); }; return Smartcli; }()); exports.Smartcli = Smartcli; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0Y2xpLmNsYXNzZXMuc21hcnRjbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUV4QixJQUFZLE9BQU8sV0FBTSxvQkFDekIsQ0FBQyxDQUQ0QztBQUc3QztJQU9JO1FBQ0ksSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUNELDJCQUFRLEdBQVIsVUFBUyxNQUFNLEVBQUMsUUFBUTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDOztJQUNELDZCQUFVLEdBQVYsVUFBVyxhQUFrQztRQUE3QyxpQkFXQztRQVZHLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPO2FBQ3BCLElBQUksQ0FBQztZQUNGLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQzs7SUFDRCw4QkFBVyxHQUFYLFVBQVksYUFBeUQ7SUFFckUsQ0FBQzs7SUFDRCw2QkFBVSxHQUFWLFVBQVcsVUFBaUI7UUFBNUIsaUJBU0M7UUFSRyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87YUFDcEIsSUFBSSxDQUFDO1lBQ0YsRUFBRSxDQUFBLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFDRCwrQkFBWSxHQUFaO1FBQUEsaUJBV0M7UUFWRyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTzthQUNwQixJQUFJLENBQUM7WUFDRixFQUFFLENBQUEsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixDQUFDO1lBQUEsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELDZCQUFVLEdBQVY7UUFDSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVMLGVBQUM7QUFBRCxDQXpEQSxBQXlEQyxJQUFBO0FBekRZLGdCQUFRLFdBeURwQixDQUFBIiwiZmlsZSI6InNtYXJ0Y2xpLmNsYXNzZXMuc21hcnRjbGkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL3NtYXJ0Y2xpLnBsdWdpbnNcIlxuaW1wb3J0ICogYXMgU21hcnRjbGlJbnRlcmFjdGlvbnMgZnJvbSBcIi4vc21hcnRjbGkuaW50ZXJhY3Rpb25cIjtcblxuZXhwb3J0IGNsYXNzIFNtYXJ0Y2xpIHtcbiAgICBhcmd2O1xuICAgIHF1ZXN0aW9uc0RvbmU7XG4gICAgcGFyc2VTdGFydGVkO1xuICAgIGNvbW1hbmRzO1xuICAgIHF1ZXN0aW9ucztcbiAgICB2ZXJzaW9uOnN0cmluZztcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICB0aGlzLmFyZ3YgPSBwbHVnaW5zLmFyZ3Y7XG4gICAgICAgIHRoaXMucXVlc3Rpb25zRG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgICAgICB0aGlzLnBhcnNlU3RhcnRlZCA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgIH1cbiAgICBhZGRBbGlhcyhrZXlBcmcsYWxpYXNBcmcpe1xuICAgICAgICB0aGlzLmFyZ3YgPSB0aGlzLmFyZ3YuYWxpYXMoa2V5QXJnLGFsaWFzQXJnKTtcbiAgICB9O1xuICAgIGFkZENvbW1hbmQoZGVmaW5pdGlvbkFyZzp7Y29tbWFuZE5hbWU6c3RyaW5nfSl7XG4gICAgICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgICAgIHRoaXMucGFyc2VTdGFydGVkLnByb21pc2VcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hcmd2Ll8uaW5kZXhPZihkZWZpbml0aW9uQXJnLmNvbW1hbmROYW1lKSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvbmUucmVzb2x2ZSh0aGlzLmFyZ3YpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkb25lLnJlamVjdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZG9uZS5wcm9tc2lzZTtcbiAgICB9O1xuICAgIGFkZFF1ZXN0aW9uKGRlZmluaXRpb25Bcmc6e3F1ZXN0aW9uU3RyaW5nOnN0cmluZyxxdWVzdGlvblR5cGU6c3RyaW5nfSl7XG4gICAgICAgIFxuICAgIH07XG4gICAgYWRkVmVyc2lvbih2ZXJzaW9uQXJnOnN0cmluZyl7XG4gICAgICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb25Bcmc7XG4gICAgICAgIHRoaXMuYWRkQWxpYXMoXCJ2XCIsXCJ2ZXJzaW9uXCIpO1xuICAgICAgICB0aGlzLnBhcnNlU3RhcnRlZC5wcm9taXNlXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5hcmd2LnYpe1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnZlcnNpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgfVxuICAgIHN0YW5kYXJkVGFzaygpe1xuICAgICAgICBsZXQgZG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgICAgICB0aGlzLnBhcnNlU3RhcnRlZC5wcm9taXNlXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5hcmd2Ll8ubGVuZ3RoID09IDAgJiYgIXRoaXMuYXJndi52KXtcbiAgICAgICAgICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZG9uZS5yZWplY3QoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBkb25lLnByb21pc2U7XG4gICAgfVxuICAgIHN0YXJ0UGFyc2UoKXtcbiAgICAgICAgdGhpcy5hcmd2ID0gdGhpcy5hcmd2LmFyZ3Y7XG4gICAgICAgIHRoaXMucGFyc2VTdGFydGVkLnJlc29sdmUoKTtcbiAgICB9XG5cbn0iXX0=