create function

void create(
  1. List<String> args
)

Implementation

void create(List<String> args) async {
  List<String> params = args.toList();

  String org = '';
  String android = '';
  String ios = '';
  String name = '';

  List<String> fcargs = [];

  if (params.contains('--p')) {
    int idx = params.indexOf('--p');
    name = params[idx + 1];
    fcargs.add('--project-name');
    fcargs.add(name);
    params.removeAt(idx);
    params.removeAt(idx);
  }

  if (params.contains('--org')) {
    int idx = params.indexOf('--org');
    org = params[idx + 1];
    fcargs.add('--org');
    fcargs.add(org);
    params.removeAt(idx);
    params.removeAt(idx);
  }

  if (params.contains('--a')) {
    int idx = params.indexOf('--a');
    android = params[idx + 1];
    fcargs.add('--android-language');
    fcargs.add(android);
    params.removeAt(idx);
    params.removeAt(idx);
  }

  if (params.contains('--i')) {
    int idx = params.indexOf('--i');
    ios = params[idx + 1];
    fcargs.add('--ios-language');
    fcargs.add(ios);
    params.removeAt(idx);
    params.removeAt(idx);
  }

  String project = params.first;
  params.removeAt(0);

  fcargs.add(project);

  Process process = await Process.start(
    'flutter',
    ['create', ...fcargs],
    runInShell: true,
    mode: ProcessStartMode.inheritStdio,
  );

  process.exitCode.then((_) {
    if (params.isNotEmpty) {
      for (String package in params) {
        _install(project, package);
      }
    }

    print('');
    print('All done!');
    print('Use this command to run your application:');
    print('');
    print('  \$ cd $project');
    print('  \$ f r');

    exit(0);
  });
}