runFlutter3d function

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

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