handleCommand function

Future<void> handleCommand(
  1. List<String> arguments, {
  2. bool verbose = false,
})

Handles the 'flutter-test-coverage-workaround' subcommand execution.

Implementation

Future<void> handleCommand(
  List<String> arguments, {
  bool verbose = false,
}) async {
  final parser = buildParser();

  try {
    var results = parser.parse(arguments);

    if (results.flag('help')) {
      printUsage(parser);
      return;
    }

    // Resolve preset if specified
    final preset = resolvePreset(
      results: results,
      arguments: arguments,
      parser: parser,
      commandPath: ['run', 'flutter-test-coverage-workaround'],
    );
    results = preset.results;

    if (verbose) {
      print(
        '[VERBOSE] flutter-test-coverage-workaround arguments: $arguments',
      );
      if (preset.resolvedArguments != null) {
        print(
          '[VERBOSE] flutter-test-coverage-workaround resolved arguments: '
          '${preset.resolvedArguments}',
        );
      }
    }

    final includePatterns = results.multiOption('include');
    final excludePatterns = results.multiOption('exclude');

    final config = FlutterTestCoverageWorkaroundConfig(
      includePatterns: includePatterns,
      excludePatterns: excludePatterns,
      target: results.option('target')!,
    );

    await runFlutterTestCoverageWorkaround(config);
  } on FormatException catch (e) {
    stderr.writeln('Error: ${e.message}');
    print('');
    printUsage(parser);
    exit(1);
  }
}