coustomParser method
void
coustomParser(
- ArgResults argResults
)
override
Implementation
@override
void coustomParser(ArgResults argResults) async {
final pw = await PROJECT_PATH;
//
logger.i('1). Creating l10n.yaml...');
final file = File(pw.join('l10n.yaml'))..createIfNotExists();
await file.writeAsString('''
# arb文件目录
arb-dir: lib/l10n
# 模板文件
template-arb-file: intl_zh.arb
# 转义语法
use-escaping: true
# 避免空检查
nullable-getter: false
# 修改输出目录
output-dir: lib/generated/intl
# 输出文件名称
''');
//
logger.i('2). Creating l10n directory...');
final l10nDirectory = Directory(pw.join('lib', 'l10n'))..createIfNotExists();
final intl = File(l10nDirectory.path.join('intl_zh.arb'))..createIfNotExists();
await intl.writeAsString('''
{
"@@locale": "zh",
"@@default-locale": "zh"
}
''');
logger.i('3). Enable generate...');
final yamlFile = await getYamlFile();
final editor = YamlEditor(yamlFile.readAsStringSync());
final flutterNode = editor.parseAt(['flutter', 'generate'], orElse: () => YamlScalar.wrap(null));
if (flutterNode.value == null) {
editor.update(['flutter', 'generate'], true);
await yamlFile.writeAsString(editor.toString());
}
await runExecutableArguments('flutter', ['gen-l10n']);
logger.i('4). Add dependencies...');
await runExecutableArguments('dart', [
'pub',
'add',
'tenon_flutter',
'tenon_flutter_libs',
'intl',
'json_annotation',
'riverpod_annotation',
'dev:build_runner',
'dev:json_serializable',
'dev:riverpod_generator',
]);
logger.i('project initialization finished.');
}