execute method
execute command
Implementation
@override
Future<void> execute() async {
String? nameProject = name;
if (name == '.') {
nameProject = ask(LocaleKeys.ask_name_to_project.tr);
}
var path = Structure.replaceAsExpected(
path: Directory.current.path + p.separator + nameProject.snakeCase);
await Directory(path).create(recursive: true);
Directory.current = path;
var org = ask(
'${LocaleKeys.ask_company_domain.tr} \x1B[33m '
'${LocaleKeys.example.tr} com.yourcompany \x1B[0m',
);
final iosLangMenu =
Menu(['Swift', 'Objective-C'], title: LocaleKeys.ask_ios_lang.tr);
final iosResult = iosLangMenu.choose();
var iosLang = iosResult.index == 0 ? 'swift' : 'objc';
final androidLangMenu =
Menu(['Kotlin', 'Java'], title: LocaleKeys.ask_android_lang.tr);
final androidResult = androidLangMenu.choose();
var androidLang = androidResult.index == 0 ? 'kotlin' : 'java';
final linterMenu = Menu([
'Yes',
'No',
], title: LocaleKeys.ask_use_linter.tr);
final linterResult = linterMenu.choose();
await ShellUtils.flutterCreate(path, org, iosLang, androidLang);
File('test/widget_test.dart').writeAsStringSync('');
switch (linterResult.index) {
case 0:
await PubspecUtils.addDependencies('flutter_lints',
isDev: true, runPubGet: true);
AnalysisOptionsSample(
include: 'include: package:flutter_lints/flutter.yaml')
.create();
break;
default:
AnalysisOptionsSample().create();
}
await InitCommand().execute();
}