runFlutter3d function
Runs flutter3d <command> [arguments] and returns its exit code
(CliExit). Writes to stdout and stderr as the command does.
Implementation
Future<int> runFlutter3d(List<String> arguments) async {
if (arguments.isEmpty) {
stderr.writeln(flutter3dUsage);
return CliExit.usage;
}
final command = arguments.first;
final rest = arguments.sublist(1);
switch (command) {
case 'convert':
return runConvertCommand(rest);
case 'doctor':
return runDoctor(rest);
case 'create':
return _create(rest);
case 'init':
return runInit(rest);
case 'plugins':
return _plugins(rest);
case 'shaders':
return _shaders(rest);
case 'migrate':
return runMigrateCommand(rest);
case 'lights':
return runLights(rest);
case 'lightmap':
return runLightmap(rest);
case 'visibility':
return runVisibility(rest);
case 'decode-worker':
return runDecodeWorker(rest);
case 'help' || '-h' || '--help':
if (rest.firstOrNull == '--surface') {
stdout.write(cliSurface());
return CliExit.ok;
}
if (cliOptions['help']!.unknownIn(rest) case final String unknown) {
stderr.writeln('${unknownOption(unknown)}\n\n$helpUsage');
return CliExit.usage;
}
return _help(rest.firstOrNull);
case '--version':
stdout.writeln('flutter3d_build ${await _packageVersion()}');
return CliExit.ok;
default:
stderr.writeln('Unknown command "$command".\n\n$flutter3dUsage');
return CliExit.usage;
}
}