runFlutterMock function
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;
}
}