promptForOverrides method
Prompt user for category overrides
Implementation
Future<Map<String, String>> promptForOverrides(
List<DependencyInfo> dependencies,
) async {
final Map<String, String> overrides = <String, String>{};
print('\n${Strings.interactiveCategoryOverride}');
print(Strings.overridePrompt);
print('');
int current = 0;
for (final DependencyInfo dep in dependencies) {
current++;
final List<String> categories =
await gemsIntegration.getPackageCategories(dep.name);
final String suggestedCategory =
categories.isNotEmpty ? categories.first : 'Utilities';
print(
'[$current/${dependencies.length}] ${dep.name} '
'(suggested: $suggestedCategory)[Enter y to keep suggested]:',
);
final String input = stdin.readLineSync() ?? '';
if (input.toLowerCase() == 'y') {
// 'y' pressed ā keep suggested category
continue;
}
if (input.isEmpty) {
// Enter pressed ā keep suggested category
continue;
}
if (input != suggestedCategory) {
overrides[dep.name] = input;
print(' ā Override: ${dep.name} ā $input');
}
}
if (overrides.isNotEmpty) {
print('\nš Saving overrides to group-overrides.yaml...');
await saveGroupOverrides(overrides);
}
return overrides;
}