| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * The main entrypoint for the pub command line application. | 6 * The main entrypoint for the pub command line application. |
| 7 */ | 7 */ |
| 8 library pub; | 8 library pub; |
| 9 | 9 |
| 10 import '../../pkg/args/lib/args.dart'; | 10 import '../../pkg/args/lib/args.dart'; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 return commands; | 49 return commands; |
| 50 } | 50 } |
| 51 | 51 |
| 52 /** | 52 /** |
| 53 * The parser for arguments that are global to Pub rather than specific to a | 53 * The parser for arguments that are global to Pub rather than specific to a |
| 54 * single command. | 54 * single command. |
| 55 */ | 55 */ |
| 56 ArgParser get pubArgParser { | 56 ArgParser get pubArgParser { |
| 57 var parser = new ArgParser(); | 57 var parser = new ArgParser(); |
| 58 parser.addFlag('help', abbr: 'h', negatable: false, | 58 parser.addFlag('help', abbr: 'h', negatable: false, |
| 59 help: 'print this usage information'); | 59 help: 'Print this usage information.'); |
| 60 parser.addFlag('version', negatable: false, | 60 parser.addFlag('version', negatable: false, |
| 61 help: 'print the version of pub'); | 61 help: 'Print pub version.'); |
| 62 parser.addFlag('trace', | 62 parser.addFlag('trace', |
| 63 help: 'print debugging information when an error occurs'); | 63 help: 'Print debugging information when an error occurs.'); |
| 64 parser.addOption('verbosity', | 64 parser.addOption('verbosity', |
| 65 help: 'control output verbosity', | 65 help: 'Control output verbosity.', |
| 66 allowed: ['normal', 'io', 'all'], | 66 allowed: ['normal', 'io', 'all'], |
| 67 allowedHelp: { | 67 allowedHelp: { |
| 68 'normal': 'errors, warnings, and user messages are shown', | 68 'normal': 'Errors, warnings, and user messages are shown.', |
| 69 'io': 'IO operations are also shown', | 69 'io': 'IO operations are also shown.', |
| 70 'all': 'all output including internal tracing messages are shown' | 70 'all': 'All output including internal tracing messages are shown.' |
| 71 }); | 71 }); |
| 72 parser.addFlag('verbose', abbr: 'v', negatable: false, | 72 parser.addFlag('verbose', abbr: 'v', negatable: false, |
| 73 help: 'shortcut for "--verbosity=all"'); | 73 help: 'Shortcut for "--verbosity=all"'); |
| 74 return parser; | 74 return parser; |
| 75 } | 75 } |
| 76 | 76 |
| 77 main() { | 77 main() { |
| 78 var globalOptions; | 78 var globalOptions; |
| 79 try { | 79 try { |
| 80 globalOptions = pubArgParser.parse(new Options().arguments); | 80 globalOptions = pubArgParser.parse(new Options().arguments); |
| 81 } on FormatException catch (e) { | 81 } on FormatException catch (e) { |
| 82 log.error(e.message); | 82 log.error(e.message); |
| 83 log.error('Run "pub help" to see available options.'); | 83 log.error('Run "pub help" to see available options.'); |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 * completes when the command is done or fails if the command fails. If the | 290 * completes when the command is done or fails if the command fails. If the |
| 291 * command is synchronous, it may return `null`. | 291 * command is synchronous, it may return `null`. |
| 292 */ | 292 */ |
| 293 Future onRun(); | 293 Future onRun(); |
| 294 | 294 |
| 295 /** Displays usage information for this command. */ | 295 /** Displays usage information for this command. */ |
| 296 void printUsage([String description]) { | 296 void printUsage([String description]) { |
| 297 if (description == null) description = this.description; | 297 if (description == null) description = this.description; |
| 298 | 298 |
| 299 var buffer = new StringBuffer(); | 299 var buffer = new StringBuffer(); |
| 300 buffer.add(description); | 300 buffer.add('$description\n\nUsage: $usage'); |
| 301 buffer.add(''); | |
| 302 buffer.add('Usage: $usage'); | |
| 303 | 301 |
| 304 var commandUsage = commandParser.getUsage(); | 302 var commandUsage = commandParser.getUsage(); |
| 305 if (!commandUsage.isEmpty) { | 303 if (!commandUsage.isEmpty) { |
| 306 buffer.add(''); | 304 buffer.add('\n'); |
| 307 buffer.add(commandUsage); | 305 buffer.add(commandUsage); |
| 308 } | 306 } |
| 309 | 307 |
| 310 log.message(buffer.toString()); | 308 log.message(buffer.toString()); |
| 311 } | 309 } |
| 312 | 310 |
| 313 /// Returns the appropriate exit code for [exception], falling back on 1 if no | 311 /// Returns the appropriate exit code for [exception], falling back on 1 if no |
| 314 /// appropriate exit code could be found. | 312 /// appropriate exit code could be found. |
| 315 int _chooseExitCode(exception) { | 313 int _chooseExitCode(exception) { |
| 316 if (exception is HttpException || exception is HttpParserException || | 314 if (exception is HttpException || exception is HttpParserException || |
| 317 exception is SocketIOException || exception is PubHttpException) { | 315 exception is SocketIOException || exception is PubHttpException) { |
| 318 return exit_codes.UNAVAILABLE; | 316 return exit_codes.UNAVAILABLE; |
| 319 } else if (exception is FormatException) { | 317 } else if (exception is FormatException) { |
| 320 return exit_codes.DATA; | 318 return exit_codes.DATA; |
| 321 } else { | 319 } else { |
| 322 return 1; | 320 return 1; |
| 323 } | 321 } |
| 324 } | 322 } |
| 325 } | 323 } |
| OLD | NEW |