For 'dartdev format' and 'dartdev format --help', return the output from dartfmt --help, instead of the default output from FormatCommand.printUsage(). This is follow up on https://dart-review.googlesource.com/c/sdk/+/133042
Change-Id: I497e983a2302fbb010256a4961b6121294a9de82 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134106 Commit-Queue: Jaime Wren <jwren@google.com> Reviewed-by: Devon Carew <devoncarew@google.com>
This commit is contained in:
committed by
commit-bot@chromium.org
parent
1efba58d22
commit
b00f0ff5fd
@@ -31,6 +31,10 @@ class DartdevRunner<int> extends CommandRunner {
|
||||
final Ansi ansi = Ansi(Ansi.terminalSupportsAnsi);
|
||||
log = isVerbose ? Logger.verbose(ansi: ansi) : Logger.standard(ansi: ansi);
|
||||
|
||||
// TODO(jwren) override this super call so that the arguments on each
|
||||
// command aren't enforced. Example:
|
||||
// dart .../dartdev.dart format -w /path/to/file.dart
|
||||
// fails becuase '-w' isn't known by the FormatCommand class.
|
||||
return await super.runCommand(results);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,19 +9,31 @@ import '../sdk.dart';
|
||||
|
||||
class FormatCommand extends DartdevCommand {
|
||||
FormatCommand({bool verbose = false})
|
||||
: super('format', 'Format one or more Dart files.') {
|
||||
// TODO(jwren) add all options and flags
|
||||
}
|
||||
: super('format', 'Format one or more Dart files.');
|
||||
|
||||
@override
|
||||
FutureOr<int> run() async {
|
||||
// TODO(jwren) implement verbose in dart_style
|
||||
// dartfmt doesn't have '-v' or '--verbose', so remove from the argument list
|
||||
var args = List.from(argResults.arguments)
|
||||
// TODO(jwren) The verbose flag was added to dartfmt in version 1.3.4 with
|
||||
// https://github.com/dart-lang/dart_style/pull/887, this version is rolled
|
||||
// into the dart sdk build, we can remove the removal of '-v' and
|
||||
// '--verbose':
|
||||
List<String> args = List.from(argResults.arguments)
|
||||
..remove('-v')
|
||||
..remove('--verbose');
|
||||
|
||||
if (args.isEmpty) {
|
||||
args.add('--help');
|
||||
}
|
||||
|
||||
var process = await startProcess(sdk.dartfmt, args);
|
||||
routeToStdout(process);
|
||||
return process.exitCode;
|
||||
}
|
||||
|
||||
@override
|
||||
void printUsage() {
|
||||
var processResult = runSync(sdk.dartfmt, ['--help']);
|
||||
String result = processResult.stdout;
|
||||
print(result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,15 @@ Future<Process> startProcess(
|
||||
return Process.start(executable, arguments, workingDirectory: cwd);
|
||||
}
|
||||
|
||||
ProcessResult runSync(
|
||||
String executable,
|
||||
List<String> arguments, {
|
||||
String cwd,
|
||||
}) {
|
||||
log.trace('$executable ${arguments.join(' ')}');
|
||||
return Process.runSync(executable, arguments, workingDirectory: cwd);
|
||||
}
|
||||
|
||||
void routeToStdout(
|
||||
Process process, {
|
||||
bool logToTrace = false,
|
||||
|
||||
@@ -22,6 +22,7 @@ void help() {
|
||||
var result = p.runSync('--help');
|
||||
|
||||
expect(result.exitCode, 0);
|
||||
expect(result.stderr, isEmpty);
|
||||
expect(result.stdout, contains(DartdevRunner.dartdevDescription));
|
||||
expect(result.stdout, contains('Usage: dartdev <command> [arguments]'));
|
||||
expect(result.stdout, contains('Global options:'));
|
||||
|
||||
@@ -15,13 +15,25 @@ void format() {
|
||||
|
||||
tearDown(() => p?.dispose());
|
||||
|
||||
test('implicit --help', () {
|
||||
p = project();
|
||||
var result = p.runSync('format');
|
||||
expect(result.exitCode, 0);
|
||||
expect(result.stderr, isEmpty);
|
||||
expect(result.stdout, contains('Idiomatically formats Dart source code.'));
|
||||
expect(result.stdout,
|
||||
contains('dartfmt [options...] [files or directories...]'));
|
||||
expect(result.stdout, contains('dartfmt -w .'));
|
||||
});
|
||||
|
||||
test('--help', () {
|
||||
p = project();
|
||||
var result = p.runSync('format', ['--help']);
|
||||
expect(result.exitCode, 0);
|
||||
expect(result.stdout, contains('Format one or more Dart files.'));
|
||||
expect(result.stdout, contains('Usage: dartdev format [arguments]'));
|
||||
expect(
|
||||
result.stdout, contains('Run "dartdev help" to see global options.'));
|
||||
expect(result.stderr, isEmpty);
|
||||
expect(result.stdout, contains('Idiomatically formats Dart source code.'));
|
||||
expect(result.stdout,
|
||||
contains('dartfmt [options...] [files or directories...]'));
|
||||
expect(result.stdout, contains('dartfmt -w .'));
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user