| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library pub.command_runner; | 5 library pub.command_runner; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:io'; | 8 import 'dart:io'; |
| 9 | 9 |
| 10 import 'package:args/args.dart'; | 10 import 'package:args/args.dart'; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 "documentation."; | 38 "documentation."; |
| 39 | 39 |
| 40 PubCommandRunner() | 40 PubCommandRunner() |
| 41 : super("pub", "Pub is a package manager for Dart.") { | 41 : super("pub", "Pub is a package manager for Dart.") { |
| 42 argParser.addFlag('version', negatable: false, | 42 argParser.addFlag('version', negatable: false, |
| 43 help: 'Print pub version.'); | 43 help: 'Print pub version.'); |
| 44 argParser.addFlag('trace', | 44 argParser.addFlag('trace', |
| 45 help: 'Print debugging information when an error occurs.'); | 45 help: 'Print debugging information when an error occurs.'); |
| 46 argParser.addOption('verbosity', | 46 argParser.addOption('verbosity', |
| 47 help: 'Control output verbosity.', | 47 help: 'Control output verbosity.', |
| 48 allowed: ['normal', 'io', 'solver', 'all'], | 48 allowed: ['error', 'warning', 'normal', 'io', 'solver', 'all'], |
| 49 allowedHelp: { | 49 allowedHelp: { |
| 50 'normal': 'Show errors, warnings, and user messages.', | 50 'error': 'Show only errors.', |
| 51 'io': 'Also show IO operations.', | 51 'warning': 'Show only errors and warnings.', |
| 52 'solver': 'Show steps during version resolution.', | 52 'normal': 'Show errors, warnings, and user messages.', |
| 53 'all': 'Show all output including internal tracing messages.' | 53 'io': 'Also show IO operations.', |
| 54 'solver': 'Show steps during version resolution.', |
| 55 'all': 'Show all output including internal tracing messages.' |
| 54 }); | 56 }); |
| 55 argParser.addFlag('verbose', abbr: 'v', negatable: false, | 57 argParser.addFlag('verbose', abbr: 'v', negatable: false, |
| 56 help: 'Shortcut for "--verbosity=all".'); | 58 help: 'Shortcut for "--verbosity=all".'); |
| 57 argParser.addFlag('with-prejudice', hide: !isAprilFools, | 59 argParser.addFlag('with-prejudice', hide: !isAprilFools, |
| 58 negatable: false, help: 'Execute commands with prejudice.'); | 60 negatable: false, help: 'Execute commands with prejudice.'); |
| 59 argParser.addFlag('package-symlinks', | 61 argParser.addFlag('package-symlinks', |
| 60 negatable: true, defaultsTo: true, | 62 negatable: true, defaultsTo: true, |
| 61 help: "Generate packages/ directories when installing packages."); | 63 help: "Generate packages/ directories when installing packages."); |
| 62 | 64 |
| 63 addCommand(new BuildCommand()); | 65 addCommand(new BuildCommand()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 92 if (options['version']) { | 94 if (options['version']) { |
| 93 log.message('Pub ${sdk.version}'); | 95 log.message('Pub ${sdk.version}'); |
| 94 return; | 96 return; |
| 95 } | 97 } |
| 96 | 98 |
| 97 if (options['trace']) { | 99 if (options['trace']) { |
| 98 log.recordTranscript(); | 100 log.recordTranscript(); |
| 99 } | 101 } |
| 100 | 102 |
| 101 switch (options['verbosity']) { | 103 switch (options['verbosity']) { |
| 102 case 'normal': log.verbosity = log.Verbosity.NORMAL; break; | 104 case 'error': log.verbosity = log.Verbosity.ERROR; break; |
| 103 case 'io': log.verbosity = log.Verbosity.IO; break; | 105 case 'warning': log.verbosity = log.Verbosity.WARNING; break; |
| 104 case 'solver': log.verbosity = log.Verbosity.SOLVER; break; | 106 case 'normal': log.verbosity = log.Verbosity.NORMAL; break; |
| 105 case 'all': log.verbosity = log.Verbosity.ALL; break; | 107 case 'io': log.verbosity = log.Verbosity.IO; break; |
| 108 case 'solver': log.verbosity = log.Verbosity.SOLVER; break; |
| 109 case 'all': log.verbosity = log.Verbosity.ALL; break; |
| 106 default: | 110 default: |
| 107 // No specific verbosity given, so check for the shortcut. | 111 // No specific verbosity given, so check for the shortcut. |
| 108 if (options['verbose']) log.verbosity = log.Verbosity.ALL; | 112 if (options['verbose']) log.verbosity = log.Verbosity.ALL; |
| 109 break; | 113 break; |
| 110 } | 114 } |
| 111 | 115 |
| 112 log.fine('Pub ${sdk.version}'); | 116 log.fine('Pub ${sdk.version}'); |
| 113 | 117 |
| 114 await _validatePlatform(); | 118 await _validatePlatform(); |
| 115 | 119 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 Future _validatePlatform() async { | 179 Future _validatePlatform() async { |
| 176 if (Platform.operatingSystem != 'windows') return; | 180 if (Platform.operatingSystem != 'windows') return; |
| 177 | 181 |
| 178 var result = await runProcess('ver', []); | 182 var result = await runProcess('ver', []); |
| 179 if (result.stdout.join('\n').contains('XP')) { | 183 if (result.stdout.join('\n').contains('XP')) { |
| 180 log.error('Sorry, but pub is not supported on Windows XP.'); | 184 log.error('Sorry, but pub is not supported on Windows XP.'); |
| 181 await flushThenExit(exit_codes.USAGE); | 185 await flushThenExit(exit_codes.USAGE); |
| 182 } | 186 } |
| 183 } | 187 } |
| 184 } | 188 } |
| OLD | NEW |