parser method

  1. @override
Future<void> parser(
  1. List<String> arguments
)
override

Implementation

@override
Future<void> parser(List<String> arguments) async {
  final argResults = argParser.parse(arguments);
  if (argResults['help']) {
    stdout.writeln(argParser.usage);
    return;
  }
  // 更新数字版本号
  var result = await updateVersionCode();
  if (!result) return;

  // 生成构建信息
  final buildInfo = await gitBuildInfo();
  final buildInfoStr = 'const buildInfo = \'$buildInfo\';';
  final generateFile = File(path.join(await PROJECT_PATH, 'lib/generated/build_config.g.dart'));
  final content = <String>[];

  if (!generateFile.existsSync()) {
    generateFile.createSync(recursive: true);
    content.addAll([license, buildInfoStr]);
  } else {
    content.addAll(generateFile.readAsLinesSync());
    final index = content.indexWhere((element) => element.startsWith('const buildInfo ='));
    content.replaceRange(index, index + 1, [buildInfoStr]);
  }
  result = await writeFile(generateFile, content);
  if (result) {
    logger.i('Process finished.');
  }
}