run method
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}');
}
}