run method

  1. @override
FutureOr run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
FutureOr run() async {
  final config = loadConfig();
  final parts = findParts(CliHelper.pathToDir(config.parts, projectDir));

  final arbPartJoin = ArbPartJoin();

  for (final part in parts) {
    final content = part.readAsStringSync();
    final YamlMap yaml = loadYaml(content);

    final Map<String, dynamic> json = yaml.cast();
    arbPartJoin.add(ArbPartDto.fromJson(json));
  }

  final files = arbPartJoin.join(config.defaultLocale);
  final output = CliHelper.pathToDir(config.output, projectDir);
  for (final locale in files.keys) {
    final file = File(p.join(output.path, '$locale.arb'));
    file.writeAsStringSync(jsonEncode(files[locale]));
    logger.info('Save arb ${file.path}');
  }
}