1 Cli = Ext.extend(Object, {
5 desc: 'Prints this help display'
9 // Override this on a subclass of Cli.
10 // An array with a description on how to use this Cli.
11 // Each entry in the array is printed on a new line.
14 constructor : function() {
15 if (this.map !== this.superproto.map) {
16 this.map = Ext.apply({}, this.map, this.superproto.map);
27 Logger.log('\n' + 'Stack trace:\n' + e.stack);
32 initArguments : function() {
33 var args = system.arguments,
35 parsedArgs = this.args = {},
39 for (i = 0; i < ln; i++) {
43 curArg = arg.substr(2);
45 else if (arg.length == 2) {
46 curArg = this.map[arg[1]] ? this.map[arg[1]].name : arg[1];
52 if (args[i + 1] && args[i + 1][0] != '-') {
53 parsedArgs[curArg] = args[i + 1] || true;
57 parsedArgs[curArg] = true;
63 printUsage : function(message) {
69 usage.push(this.name + ' version ' + this.version);
70 usage.push('Powered by Sencha Inc');
72 usage.push('Available arguments:');
76 ' --' + mapping.name + ' -' + i
78 usage.push(' ' + (mapping.required ? '(required)' : '(optional)') + ' ' + (mapping.desc || ''));
87 usage = usage.concat(this.usage);
90 for (i = 0; i < usage.length; i++) {
95 checkRequired : function() {
100 if (this.map[i].required && args[this.map[i].name] === undefined) {
109 if (this.get('help')) {
114 var required = this.checkRequired();
115 if (required !== true) {
116 this.error('The --' + this.map[required].name + ' or -' + required + ' argument is required');
122 get : function(key) {
123 return this.args[key] || false;
126 set : function(key, value, ifNotExists) {
127 if (ifNotExists && this.get(key) !== false) {
130 this.args[key] = value;
133 log : function(variable) {
134 Logger.log(variable);
137 error : function(error) {