starter function
generate a Flutter starter project
Implementation
Future<void> starter(List<String> args) async {
List<String> params = args.toList();
String org = '';
String android = '';
String ios = '';
String name = '';
String template = 'provider';
List<String> fargs = [];
if (params.contains('--p')) {
int idx = params.indexOf('--p');
name = params[idx + 1];
fargs.add('--project-name');
fargs.add(name);
params.removeAt(idx);
params.removeAt(idx);
}
if (params.contains('-p')) {
int idx = params.indexOf('-p');
name = params[idx + 1];
fargs.add('--project-name');
fargs.add(name);
params.removeAt(idx);
params.removeAt(idx);
}
if (params.contains('--org')) {
int idx = params.indexOf('--org');
org = params[idx + 1];
fargs.add('--org');
fargs.add(org);
params.removeAt(idx);
params.removeAt(idx);
}
if (params.contains('-org')) {
int idx = params.indexOf('-org');
org = params[idx + 1];
fargs.add('--org');
fargs.add(org);
params.removeAt(idx);
params.removeAt(idx);
}
if (params.contains('--a')) {
int idx = params.indexOf('--a');
android = params[idx + 1];
fargs.add('--android-language');
fargs.add(android);
params.removeAt(idx);
params.removeAt(idx);
}
if (params.contains('-a')) {
int idx = params.indexOf('-a');
android = params[idx + 1];
fargs.add('--android-language');
fargs.add(android);
params.removeAt(idx);
params.removeAt(idx);
}
if (params.contains('--i')) {
int idx = params.indexOf('--i');
ios = params[idx + 1];
fargs.add('--ios-language');
fargs.add(ios);
params.removeAt(idx);
params.removeAt(idx);
}
if (params.contains('-i')) {
int idx = params.indexOf('-i');
ios = params[idx + 1];
fargs.add('--ios-language');
fargs.add(ios);
params.removeAt(idx);
params.removeAt(idx);
}
if (params.contains('--bloc')) {
template = 'bloc';
params.remove('--bloc');
}
if (params.contains('--cubit')) {
template = 'cubit';
params.remove('--cubit');
}
if (params.contains('--getx')) {
template = 'getx';
params.remove('--getx');
}
if (params.contains('--get')) {
template = 'getx';
params.remove('--get');
}
/* if (params.contains('--mobx')) {
template = 'mobx';
params.remove('--mobx');
} */
if (params.contains('--provider')) {
template = 'provider';
params.remove('--provider');
}
if (params.contains('--riverpod')) {
template = 'riverpod';
params.remove('--riverpod');
}
String project = params.first;
fargs.add(project);
Process process = await Process.start(
'flutter',
['create', ...fargs],
runInShell: true,
mode: ProcessStartMode.inheritStdio,
);
process.exitCode.then((_) {
_template(project, template, org);
print('');
print('Installing dependencies...');
print('');
final res = Process.runSync(
'cd $project && flutter pub get',
[],
runInShell: true,
);
print(res.stdout);
print('');
print('All done!');
print('Use this command to run your application:');
print('');
print(' \$ cd $project');
print(' \$ f r');
exit(0);
});
}