run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
Future<int> run() async {
final name = argResults!['name'] as String;
final id = argResults?['id'] as String? ?? '';
var groupId = argResults?['group-id'] as String? ?? '';
final mainLocale = argResults?['main-locale'] as String? ?? 'en';
final targetLocaleIds =
argResults?['target-locales'] as List<String>? ?? [];
final description = argResults?['description'] as String? ?? '';
final ignoreWords = argResults?['ignore-words'] as List<String>? ?? [];
final variants = argResults?['variants'] as List<String>? ?? [];
final exportDart = argResults?['export-dart'] == true;
final exportFlutter = argResults?['export-flutter'] == true;
final validateExport = argResults?['validate-export'] == true;
if (groupId.isEmpty) {
final groupClient = container.read(groupServiceClientProvider);
final primary = await groupClient.getPrimaryGroup(
Empty(),
options: getCallOptions(),
);
groupId = primary.id;
}
final project = Project(
name: name,
groupId: groupId,
mainLocaleId: mainLocale,
description: description,
exportDart: exportDart,
exportFlutter: exportFlutter,
validateExport: validateExport,
);
if (id.isNotEmpty) {
project.id = id;
}
project.targetLocales.addAll(
targetLocaleIds.map(
(loc) => Localization(localeId: loc, autoTranslate: true),
),
);
project.ignoreWords.addAll(ignoreWords);
project.variants.addAll(variants);
final client = container.read(projectServiceClientProvider);
final result = await client.upsertProject(
project,
options: getCallOptions(),
);
printOutput(result);
return 0;
}