runFlutterMock function

Future<int> runFlutterMock(
  1. List<String> arguments
)

Runs the flutter_mock command-line interface.

Returns a process exit code after handling the parsed command.

Implementation

Future<int> runFlutterMock(List<String> arguments) async {
  final parser = ArgParser()
    ..addCommand(
      'init',
      ArgParser()
        ..addFlag(
          'force',
          abbr: 'f',
          help: 'Overwrite mock.yaml and sample data if they already exist.',
          negatable: false,
        ),
    )
    ..addCommand(
      'start',
      ArgParser()
        ..addOption(
          'config',
          abbr: 'c',
          defaultsTo: 'mock.yaml',
          help: 'Path to the YAML configuration file.',
        )
        ..addOption(
          'host',
          defaultsTo: 'localhost',
          help: 'Host interface to bind.',
        )
        ..addOption(
          'port',
          defaultsTo: '8080',
          help: 'Port to bind.',
        ),
    )
    ..addCommand(
      'validate',
      ArgParser()
        ..addOption(
          'config',
          abbr: 'c',
          defaultsTo: 'mock.yaml',
          help: 'Path to the YAML configuration file.',
        ),
    )
    ..addFlag(
      'help',
      abbr: 'h',
      negatable: false,
      help: 'Print this usage information.',
    );

  late final ArgResults results;
  try {
    results = parser.parse(arguments);
  } on FormatException catch (error) {
    stderr.writeln(error.message);
    _printUsage(parser);
    return _exitUsage;
  }

  if (results['help'] == true || results.command == null) {
    _printUsage(parser);
    return _exitSuccess;
  }

  switch (results.command!.name) {
    case 'init':
      return _runInit(results.command!);
    case 'start':
      return _runStart(results.command!);
    case 'validate':
      return _runValidate(results.command!);
    default:
      _printUsage(parser);
      return _exitUsage;
  }
}