coustomParser method
void
coustomParser(
- ArgResults argResults
)
override
Implementation
@override
void coustomParser(ArgResults argResults) async {
// 创建build_config.g.dart
final generateFile = File(join(await PROJECT_PATH, 'lib/generated/build.g.dart'));
if (!generateFile.existsSync()) generateFile.createSync(recursive: true);
final contents = generateFile.readAsLinesSync();
// 判断是否要插入license
if (!contents.contains(license)) {
contents.insertAll(0, [license, '']);
}
final flavor = argResults['flavor'];
if (flavor != null) _addOrReplace(contents, 'buildFlavor', flavor);
_addOrReplace(contents, 'buildBranch', await gitBranch());
_addOrReplace(contents, 'buildNumber', await gitShort());
_addOrReplace(contents, 'buildDate', await gitDate());
final yamlFile = await getYamlFile();
final editor = YamlEditor(yamlFile.readAsStringSync());
final version = editor.parseAt(['version'], orElse: () => YamlScalar.wrap('1.0.0+1')).value as String;
final versionName = version.substring(0, version.contains('+') ? version.indexOf('+') : null);
final versionCode = await gitCommitCount();
_addOrReplace(contents, 'versionName', versionName);
_addOrReplace(contents, 'versionCode', versionCode);
await generateFile.writeAsString(contents.join('\n'), flush: true);
editor.update(['version'], YamlScalar.wrap('$versionName${version.contains('+') ? '+$versionCode' : ''}'));
await yamlFile.writeAsString(editor.toString());
logger.i('new version $versionName${version.contains('+') ? '+$versionCode' : ''} generated.');
await runPubGet();
}